Wat betekent deze vierkante haak en haakjesnotatie [first1,last1)?

Ik heb nummerreeksen gezien die worden weergegeven als [first1,last1)en [first2,last2).

Ik zou graag willen weten wat zo’n notatie betekent.


Antwoord 1, autoriteit 100%

Een haakje – [of ]– betekent dat het einde van het bereik inclusiefis — het bevat het vermelde element. Een haakje – (of )– betekent dat het einde exclusiefis en niet het vermelde element bevat. Dus voor [first1, last1)begint het bereik met first1(en omvat het), maar eindigt het net voor last1.

Ervan uitgaande dat gehele getallen:

  • (0, 5) = 1, 2, 3, 4
  • (0, 5] = 1, 2, 3, 4, 5
  • [0, 5) = 0, 1, 2, 3, 4
  • [0, 5] = 0, 1, 2, 3, 4, 5

Antwoord 2, autoriteit 15%

Dat is een halfopen interval.

  • Een gesloten interval [a,b]bevatde eindpunten.
  • Een open interval (a,b)sluit ze uit.

In jouw geval is het eindpunt aan het begin van het interval wel inbegrepen, maar het einde niet. Het betekent dus het interval “first1 <= x < last1”.

Half-open intervallen zijn handig bij het programmeren omdat ze overeenkomen met het gebruikelijke idioom voor looping:

for (int i = 0; i < n; ++i) { ... } 

Hier is i in het bereik [0, n).


Antwoord 3, autoriteit 7%

Het concept van intervalnotatiekomt voor in zowelwiskunde als informatica. De wiskundige notatie [, ], (, )geeft het domein(of bereik) van een interval.

  • De haakjes [en ]betekenen:

    1. Het nummer is inbegrepen,
    2. Deze kant van het interval is gesloten,
  • De haakjes (en )betekenen:

    1. Het nummer is uitgesloten,
    2. Deze kant van het interval is open.

Een interval met gemengde toestanden wordt “half-open”genoemd.

Het bereik van opeenvolgende gehele getallen van 1 .. 10 (inclusief) wordt bijvoorbeeld als zodanig genoteerd:

  • [1,10]

Let op hoe het woord inclusivewerd gebruikt. Als we het eindpunt willen uitsluitenmaar hetzelfde bereik willen “bedekken”, moeten we het eindpunt verplaatsen:

  • [1,11)

Voor zowel de linker- als de rechterrand van het interval zijn er in feite 4 permutaties:

(1,10) =   2,3,4,5,6,7,8,9       Set has  8 elements
(1,10] =   2,3,4,5,6,7,8,9,10    Set has  9 elements
[1,10) = 1,2,3,4,5,6,7,8,9       Set has  9 elements
[1,10] = 1,2,3,4,5,6,7,8,9,10    Set has 10 elements

Hoe verhoudt dit zich tot wiskunde en informatica?

Array-indexen hebben de neiging om een andereoffset te gebruiken, afhankelijk van in welk veld u zich bevindt:

  • Wiskunde is meestal een-gebaseerd.
  • Bepaalde programmeertalen zijn meestal nul-gebaseerd, zoals C, C++, Javascript, Python, terwijl andere talen zoals Mathematica, Fortran en Pascal één-gebaseerd zijn.

Deze verschillen kunnen leiden tot subtiele hekfouten , aka, Off-by-one bugs bij het implementeren van wiskundige algoritmen zoals voor-lussen.

Integers

Als we een set of array hebben, zeg dan van de eerste paar Primes [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ], zouden wiskundigen verwijzen naar het eerste element als de 1stabsoluut -element. d.w.z. met behulp van subscript-notatie om de index aan te duiden:

  • A 1 = 2
  • A 2 = 3
  • :
  • A 10 = 29

Enkele programmeertalen, in tegenstrijdigheid, verwijzen naar het eerste element als de zero'threlatief element.

  • A [0] = 2
  • A [1] = 3
  • :
  • a [9] = 29

Aangezien de array-indexen in het bereik zijn [0, N-1] dan voor duidelijkheidsdoeleinden zou het “Nice” zijn om dezelfde numerieke waarde voor het bereik te houden 0 .. N in plaats van tekstuele ruis zoals een -1bias.

Bijvoorbeeld in C of JavaScript, om te herhalen over een reeks N-elementen, zou een programmeur het gewone idioom van i = 0, i < Nmet het interval [0, N) in plaats van de iets meer uitgebreide [0, N-1]:

function main() {
    var output = "";
    var a = [ 2, 3, 5, 7,  11, 13, 17, 19, 23, 29 ];
    for( var i = 0; i < 10; i++ ) // [0,10)
       output += "[" + i + "]: " + a[i] + "\n";
    if (typeof window === 'undefined') // Node command line
        console.log( output )
    else
        document.getElementById('output1').innerHTML = output;
}
<html>
     <body onload="main();">
         <pre id="output1"></pre>
     </body>
 </html>

Antwoord 4

Het kan een wiskundige conventie zijn in de definitie van een interval waarbij vierkante haken ‘extreem inclusief’ betekenen en ronde haken ‘extreem exclusief’.

Other episodes