美文网首页
为什么numbering 应该从0开始

为什么numbering 应该从0开始

作者: will_7c3c | 来源:发表于2023-03-05 15:44 被阅读0次

为什么numbering 应该从0开始

竟然有Dijkstra关于这个问题的严肃活泼的阐述

why numbering should start at zero
还有其手稿

我来翻译一下.

在不用省略号的前提下表示自然数2,3,...,12 ,我们有四种方式

a) 2 ≤ i < 13
b) 1 < i ≤ 12
c) 2 ≤ i ≤ 12
d) 1 < i < 13

那么这里面有没有一个选项是比其他三个更好的呢?

是的,确实是的.

非常明显的,ab选项有一个又是在于上下限之差是等于数列的长度的.

另一个非常明显的点在于,对这两个表达式来说,任意两个相邻子序列一个的上界等于另一个的下界.

纵使我们的观察很有效,但这不能帮助我们从a,b当中选出来一个更好的.所以我们接着往下来

我们知道有一个最小的自然数.会被b,d天然的排除到下界之外,如果我们要包含这个最小的自然数在表示子序列过程中,我们必须使用非自然数,这是非常sb的行为.

所以我们在表示下界的时候更希望使用闭包,也就是≤ ,这一点a,c是满足的

现在我们继续思考,我们的子序列可以从最小的自然数开始了,表示子序列为空时,闭包的上界表达会让我们又不得不使用非自然数.这同样是sb的.所以对于上界,我们倾向于使用<.

这样我们得出a选项将会是最好的


当处理一个长度为 N 的序列时(希望通过下标来区分其中的元素) ,一个棘手的问题是为其起始元素赋什么下标值。根据 a表达式 ,当从下标1开始时,下标范围1≤ i < N + 1; 然而,从0开始,给出了更好的范围0≤ i < N。因此,让我们让序数从零开始: 元素的序数(下标)等于序列中它之前的元素数。这个故事的寓意是,我们最好把零当作一个最自然的数字ーー经过了这么多个世纪。

备注:很多编程语言没有很好的注意到这个细节,比如说Fortran ,Pascal....


上述情况是由最近的一起事件引发的。当时,我在纽约大学的一位数学同事(不是计算机科学家)情绪激动地指责一些年轻的计算机科学家“迂腐”,因为他们习惯性地开始数字为零。他把有意识地接受最明智的惯例当作一种挑衅。(另外,“结束... ...”的惯例被视为具有挑衅性; 但这个惯例是有用的: 我知道一个学生在一次考试中差点挂了,因为他默认题目在第一页的底部就结束了。)我认为Antony Jay的观点是正确的: “在企业宗教和其他宗教中,异教徒必须被驱逐出去,不是因为他有可能是错的,而是因为他有可能是正确的

Plataanstraat 5 11 August 1982
5671 AL NUENEN prof.dr. Edsger W. Dijkstra
The Netherlands Burroughs Research Fellow

相关文章

  • Android日期工具--calender使用

    Calender使用 关键字 ERA = 0 year numbering system YEAR = 1 年 M...

  • 从0开始写作,我们应该从哪里开始?

    1.我为何要写 初入职场觉得十分迷茫,作为平面设计师设计功底尚不算结实,职业与前途和自己想要的都不确定,更不敢言自...

  • 数组结构-数组

    数组下标为什么从 0 开始? 0 开始的寻址 a[k]_address = base_address + k * ...

  • 从0开始

    不想再碌碌无为继续这么混下去了好嘛

  • 从0开始

    空杯心态,说着容易做着难。 当我们从有了孩子的欣喜若狂,到孩子第一天上幼儿园的充满希望,然后到小学三四年级的开始纠...

  • 从0开始

    当一家公司开始招聘专业安全人员的时候,意味着安全对这家公司已经比较重要了,比如曾发生一些入侵或者信息泄漏等安全事件...

  • 从0开始

    The best time to plant a tree is twenty years ago. The se...

  • 从0开始

    接触简书已经半年多了,最初是在看一些公众号的文章时偶然间看到了简书,这个集读文写文于一身的平台,早早的就下了这个软...

  • 从0开始

    写作是我的短板,一直以来都想突破但都在得过且过,没有行动,希望从今天开始学习,跟大家一起努力加油,成为更好的自己!

  • 从0开始

    现在生活已经慢慢进入正轨,而我却在迷茫。我的这种迷茫和否定不知跟谁去说,又不知从何说起。 目前跟家人,朋友,没有一...

网友评论

      本文标题:为什么numbering 应该从0开始

      本文链接:https://www.haomeiwen.com/subject/epzuldtx.html