2024-04-19 11:45:28 发布
网友
我见过用[first1,last1)和[first2,last2)表示的数字范围。
[first1,last1)
[first2,last2)
我想知道这样的记号是什么意思。
括号表示范围的结尾是包含的,它包含列出的元素。圆括号表示结束是排他的,不包含列出的元素。因此对于[first1, last1),范围以first1开始(包括它),但在last1之前结束。
[first1, last1)
first1
last1
假设整数:
区间表示法的概念出现在数学和计算机科学中。数学符号[、]、(、)表示一个区间的域(或范围)。
[
]
(
)
括号[和]表示:
括号(和)表示:
具有混合状态的间隔称为“半开”。
例如,从1..开始的连续整数范围。。10(包括10)将标记为,如下所示:
注意单词inclusive是如何使用的。如果我们想排除终点,但“覆盖”相同的范围,我们需要移动终点:
inclusive
对于区间的左边缘和右边缘,实际上有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
这与数学和计算机科学有什么关系?
数组索引倾向于使用不同的偏移量,具体取决于您所处的字段:
在实现for循环等数学算法时,这些差异可能会导致细微的fence post错误。
如果我们有一个集合或数组,比如前几个素数,数学家会把第一个元素称为绝对元素。i、 e.使用下标符号表示索引:
与此相反,一些编程语言将第一个元素称为zero'threlative元素。
zero'th
由于数组索引在[0,N-1]范围内,因此为了清楚起见,保持0范围内相同的数值是“好”的。。N而不是添加文本噪声例如-1偏差。
-1
例如,在C或JavaScript中,为了在N个元素的数组上迭代,程序员应该用间隔[0,N]来编写i = 0, i < N的常用习惯用法,而不是稍显冗长的[0,N-1]:
i = 0, i < N
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>
数学家,因为他们从1开始计数,所以会使用i = 1, i <= N命名法,但是现在我们需要用基于零的语言更正数组偏移量。
i = 1, i <= N
例如
function main() { var output = ""; var a = [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ]; for( var i = 1; i <= 10; i++ ) // [1,10] output += "[" + i + "]: " + a[i-1] + "\n"; if (typeof window === 'undefined') // Node command line console.log( output ) else document.getElementById( "output2" ).innerHTML = output; }
<html> <body onload="main()";> <pre id="output2"></pre> </body> </html>
旁边:
在基于0的编程语言中,可能需要使用第0个虚拟元素的kludge来使用基于1的数学算法。e、 克Python Index Start
区间表示法对于浮点数也很重要,可以避免细微的错误。
在处理浮点数字时,尤其是在计算机图形学(颜色转换、计算几何、动画简化/混合等)中,通常使用规范化的数字。也就是说,数字在0.0到1.0之间。
如果端点是包含或排除,则了解边缘情况非常重要:
其中M是一些machine epsilon。这就是为什么有时您可能在C代码中看到const float EPSILON = 1e-#习惯用法(例如1e-6)对于32位浮点数。这个问题有一些初步的细节。更全面的答案请参见FLT_EPSILON和David Goldberg的What Every Computer Scientist Should Know About Floating-Point Arithmetic
const float EPSILON = 1e-#
1e-6
FLT_EPSILON
随机数生成器的某些实现random()可能会产生0.0范围内的值。。0.999。。。而不是更方便的0.0。。1.0分。代码中的适当注释将记录为[0.0,1.0]或[0.0,1.0],这样就不会对用法产生歧义。
random()
示例:
near-white
white
+--------+-----+ |random()|Byte | |--------|-----| |0.999...| 254 | <-- error introduced |1.0 | 255 | +--------+-----+
有关浮点精度和区间稳健性的更多详细信息,请参见Christer Ericson的Real-Time Collision Detection,第11章“数值稳健性”,第11.3节“稳健性浮点用法”。
那是一个half-open interval。
[a,b]
(a,b)
在您的情况下,包括间隔开始时的端点,但不包括结束时的端点。所以它的意思是间隔“first1<;=x<;last1”。
半开放间隔在编程中很有用,因为它们对应于循环的常用用法:
for (int i = 0; i < n; ++i) { ... }
我在[0,n]范围内。
括号表示范围的结尾是包含的,它包含列出的元素。圆括号表示结束是排他的,不包含列出的元素。因此对于
[first1, last1)
,范围以first1
开始(包括它),但在last1
之前结束。假设整数:
区间表示法的概念出现在数学和计算机科学中。数学符号
[
、]
、(
、)
表示一个区间的域(或范围)。括号
[
和]
表示:括号
(
和)
表示:具有混合状态的间隔称为“半开”。
例如,从1..开始的连续整数范围。。10(包括10)将标记为,如下所示:
注意单词
inclusive
是如何使用的。如果我们想排除终点,但“覆盖”相同的范围,我们需要移动终点:对于区间的左边缘和右边缘,实际上有4个置换:
这与数学和计算机科学有什么关系?
数组索引倾向于使用不同的偏移量,具体取决于您所处的字段:
在实现for循环等数学算法时,这些差异可能会导致细微的fence post错误。
整数
如果我们有一个集合或数组,比如前几个素数,数学家会把第一个元素称为绝对元素。i、 e.使用下标符号表示索引:
与此相反,一些编程语言将第一个元素称为
zero'th
relative元素。由于数组索引在[0,N-1]范围内,因此为了清楚起见,保持0范围内相同的数值是“好”的。。N而不是添加文本噪声例如
-1
偏差。例如,在C或JavaScript中,为了在N个元素的数组上迭代,程序员应该用间隔[0,N]来编写
i = 0, i < N
的常用习惯用法,而不是稍显冗长的[0,N-1]:数学家,因为他们从1开始计数,所以会使用
i = 1, i <= N
命名法,但是现在我们需要用基于零的语言更正数组偏移量。例如
旁边:
在基于0的编程语言中,可能需要使用第0个虚拟元素的kludge来使用基于1的数学算法。e、 克Python Index Start
浮点
区间表示法对于浮点数也很重要,可以避免细微的错误。
在处理浮点数字时,尤其是在计算机图形学(颜色转换、计算几何、动画简化/混合等)中,通常使用规范化的数字。也就是说,数字在0.0到1.0之间。
如果端点是包含或排除,则了解边缘情况非常重要:
其中M是一些machine epsilon。这就是为什么有时您可能在C代码中看到
const float EPSILON = 1e-#
习惯用法(例如1e-6
)对于32位浮点数。这个问题有一些初步的细节。更全面的答案请参见FLT_EPSILON
和David Goldberg的What Every Computer Scientist Should Know About Floating-Point Arithmetic随机数生成器的某些实现
random()
可能会产生0.0范围内的值。。0.999。。。而不是更方便的0.0。。1.0分。代码中的适当注释将记录为[0.0,1.0]或[0.0,1.0],这样就不会对用法产生歧义。示例:
random()
颜色。将三个浮点值转换为无符号的8位值,以分别生成具有红色、绿色和蓝色通道的24位像素。根据由random()
输出的间隔,您可能最终得到near-white
(254254254)或white
(255255255)。有关浮点精度和区间稳健性的更多详细信息,请参见Christer Ericson的Real-Time Collision Detection,第11章“数值稳健性”,第11.3节“稳健性浮点用法”。
那是一个half-open interval。
[a,b]
包括端点。(a,b)
排除它们。在您的情况下,包括间隔开始时的端点,但不包括结束时的端点。所以它的意思是间隔“first1<;=x<;last1”。
半开放间隔在编程中很有用,因为它们对应于循环的常用用法:
我在[0,n]范围内。
相关问题 更多 >
编程相关推荐