这个方括号和括号括号是什么意思是?
我已经看到数字范围表示为[first1,last1)
和[first2,last2)
。
我想知道这个符号是什么意思。
括号表示范围的末尾是包含的 – 它包括列出的元素。 圆括号表示末尾是排他性的 ,不包含列出的元素。 所以对于[first1, last1)
,范围从first1
开始(包括它),但是在last1
之前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
这是一个半开放的时间间隔 。
- 闭区间
[a,b]
包括终点。 - 开放间隔
(a,b)
将其排除在外 。
在你的情况下,在时间间隔开始时的终点被包括在内,但是结束被排除在外。 所以它意味着间隔“first1 <= x <last1”。
半开的时间间隔在编程中很有用,因为它们对应于循环的常见用法:
for (int i = 0; i < n; ++i) { ... }
这里我在[0,n)的范围内。
区间符号的概念出现在math和计算机科学。 math符号[
, ]
, (
, )
表示区间的域 (或范围 )。
-
括号
[
和]
意思是:- 这个数字包括在内 ,
- 间隔的这一侧是封闭的 ,
-
括号
(
和)
表示:- 数字被排除在外 ,
- 间隔的这一侧是开放的 。
混合状态的间隔称为“半开放” 。
例如,从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
这与math和计算机科学有什么关系?
数组索引倾向于使用不同的偏移量,具体取决于您在哪个字段中:
- math往往是基于一个的。
- 某些编程语言往往是基于零的,比如C,C ++,Javascript,Python,而Mathematica,Fortran,Pascal等其他语言是基于一个的。
这些差异可能会导致细微的栅栏后错误 ,也就是说,在实现诸如for循环之类的mathalgorithm时,会出现错误的错误 。
整型
如果我们有一个集合,或者说前几个素数[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ]
2,3,5,7,11,13,17,19,23,29 [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ]
,math家会把第一个元素称为第1st
绝对元素。 即使用下标符号来表示索引:
- 1 = 2
- 一个2 = 3
- :
- 一个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
的常见惯用语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>
在方括号表示“包含极值”和区间括号“极值排除”的区间定义中,它可以是一个math约定。