Подтвердить что ты не робот

Что означает эта квадратная скобка и скобка для обозначения скобок [first1, last1)?

Я видел диапазоны чисел, представленные как [first1,last1) и [first2,last2).

Я хотел бы знать, что такое обозначение.

4b9b3361

Ответ 1

Скобка означает, что конец диапазона включен - он включает в себя указанный элемент. Скобка означает, что конец эксклюзивный и не содержит указанный элемент. Итак, для [first1, last1) диапазон начинается с first1 (и включает его), но заканчивается непосредственно перед last1.

Предполагая целые числа:

  • (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

Ответ 2

Это полуоткрытый интервал.

  • Замкнутый интервал [a,b] включает в себя конечные точки.
  • Открытый интервал (a,b) исключает их.

В вашем случае включена конечная точка в начале интервала, но конец исключен. Таким образом, это означает интервал "first1 <= x < last1".

Полупрозрачные интервалы полезны в программировании, потому что они соответствуют общей идиоме для цикла:

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

Здесь я находится в диапазоне [0, n).

Ответ 3

Концепция интервальной нотации возникает как в математике, так и в компьютерной науке. Математическая нотация [, ], (, ) обозначает область (или диапазон) интервала.

  • Скобки [ и ] означают:

    • Число включено,
    • Эта сторона интервала закрыта,
  • Скобки ( и ) означают:

    • Число исключено,
    • Эта сторона интервала открыта.

Интервал со смешанными состояниями называется "полуоткрытым".

Например, диапазон последовательных целых чисел от 1.. 10 (включительно) будет обозначен как таковой:

  • [1,10]

Обратите внимание, как использовалось слово inclusive. Если мы хотим исключить конечную точку, но "накрыть" тот же диапазон, нам нужно переместить конечную точку:

  • [1,11)

Для левого и правого краев интервала есть фактически 4 перестановки:

(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

Как это относится к математике и информатике?

Индексы массивов имеют тенденцию использовать другое смещение в зависимости от того, в каком поле вы находитесь:

  • Математика имеет тенденцию быть одной.
  • Некоторые языки программирования, как правило, основаны на нулевом значении, такие как C, С++, Javascript, Python, тогда как другие языки, такие как Mathematica, Fortran, Pascal, основаны на одном.

Эти различия могут приводить к ошибкам после ошибки, ака, off-by-one при реализации математических алгоритмов, таких как for-loops.

Целые

Если у нас есть набор или массив, скажем, из первых нескольких простых чисел [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ], математики будут ссылаться на первый элемент как абсолютный элемент 1st. т.е. используя индексную нотацию для обозначения индекса:

  • a 1= 2
  • a 2= 3
  • a 10= 29

Некоторые языки программирования, в противоположность этому, относятся к первому элементу как относительный элемент zero'th.

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

Так как индексы массива находятся в диапазоне [0, N-1], тогда для целей ясности было бы "приятно" сохранить одно и то же числовое значение для диапазона 0.. N вместо добавления текстовых шумов, таких как -1.

Например, на C или JavaScript для итерации по массиву из N элементов программист будет писать общую идиому i = 0, i < N с интервалом [0, N) вместо немного более подробного [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>

Ответ 4

Это может быть математическое соглашение в определении интервала, где квадратные скобки означают "экстремальные включительные" и круглые скобки "экстремальные исключения".