为什么计算机专业的人都喜欢从0开始计数

考虑下你现在要表示 2, 3, 4, 5, 6 这几个数字, 你有几种表示方式:

  1. [2, 7)
  2. (1, 6]
  3. [2, 6]
  4. (1, 7)

哪种方式更好? 让我们考虑下边际条件:

当左边界是最小的非负整数时(0), 左开区间需要表示 负数 了, Ugly! 左闭区间就可以直接表示成非负整数, 所以, 左边界最小时 左闭区间 的表示方法胜出. 排除 2和4.

1和3哪个更好? 让我们再考虑下一种极端情况. 当只有一个数时, 即需要表示 2 这个数字区间时, 右闭区间就表示成了[2, 2], Ugly! 右开区间表示成 [2, 3). 右开区间表示方法胜出. 排除3.

所以, 我们选择第1种表示方法, 即 左闭右开 的表示方法.

在计算机编程里, 经常需要表示数组下标, 第一个位置到底是从0开始好, 还是从1开始好?

使用 左闭右开 的表示方法:

  • 如果是从1开始计数, 则表示成 [1, N+1)
  • 如果是从0开始计数, 则表示成 [0, N)

显然, 使用从0开始计数的时候, 表示起来更美观和实用, 右侧数字直接减去左侧数字, 即为整个区间的数字个数.

时间: 2024-12-14 11:24:49

为什么计算机专业的人都喜欢从0开始计数的相关文章

七.科技金融Fin×Tech--细胞裂变的前期,非金融、计算机专业的人机会在哪里?

原文地址:https://www.cnblogs.com/lj-attitudes0303/p/10354525.html

清华计算机专业课程列表

本科课程 微型计算机技术 http://www.nuist.edu.cn/courses/jsj/GD_jsj_001b/index.htm数据结构 [url]http://www.nuist.edu.cn/courses/jsj/GD_jsj_002b/index.htm[/url] 人工智能导论 [url]http://www.nuist.edu.cn/courses/jsj/GD_jsj_003b/index.htm[/url] 信号处理原理 [url]http://www.nuist.e

大学本科计算机专业应该学点什么?

答应给一位刚上大一的小盆宇指点一下,所以我这里简单的说点吧.有砖家看了觉得可笑的话,请勿发表高见.谢谢. 首先还是要推荐Sir前辈的<胡侃>(点击可传送),将近20年过去了依然是经典.然后,我对各种课程的理解是这样的: 首先简单说下英语吧.大学是没有人“教”你英语的,英语课很扯淡,英语全靠自学.好在讲语法的地方高中都讲完了,大学基本就是词汇量,实际应用等等.英语的重要性在于:四六级. 考研.还有原版专业书.其中原版专业书是最重要的.你将来要接触的计算机的资料,英文的比中文的要管用的多. 然后是

大学的计算机专业学生怎么学习

现在到大学基本上都是上了十几年学,不说是学习老手,也是应试老手了,但是大学越上越不会考试了,更不会学习了,面对计算机专业这个对专业要求很高的专业,得想想怎么学习,怎么面对快速发展的技术,很多人说讲究效率,但是效率怎么产生,得有策略,十几年的学只是教会了我们怎么考试,但是没有教会我们怎么学习,特别是怎么自学,在大学三年,慢慢就发现现在学的不是学习,而是怎么学习,在这个技术快速更新的专业,学会学习,才是立命之本. 就拿我们学校专业课程来说,我总结了一下路线,基本上就是那么几种: 1.软件开发 2.a

走好脚下的路--写给迷茫的计算机专业在校生

2013年6月我迈出了校门,和四年难忘的大学生活挥手作别.而今一年半有余,挥手曾经的岁月,也不免有几分唏嘘.我战战兢兢的敲下这篇文章的标题,自己的经历和感悟是否有资格给后来人一些启示,心里有几分不安.不过既然决定提笔,就把我的心里话说出来. 促使我写这篇文章的原因是在贴吧里看到一位在校大一新生所提到的问题: 1.C++还需要学习吗? 2.C已经入门了,想从事游戏方面的工作,有必要深入学习C吗? 我在贴吧里写了很长的话来针对这两个问题来回答,但是后来我突然意识到,这位同学的问题背后所表现出来的或多

数学专业的数学与计算机专业的数学的比较(转)

 虾米大虾~~ 2011-09-20 11:01:54 计算机科学与技术这一门科学深深的吸引着我们这些同学们,上应用数学系已经有近三年了,自己也做了一些思考,原先不管是国内还是国外都喜欢把计算机系分为计算机软件理论.计算机系统.计算机技术与应用.后来又合到一起,变成了现在的计算机科学与技术.我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术:每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括原先Maj

【转】计算机专业不是学编程

学计算机的如果你有耐心看下去,我敢保证这绝对是一种收获大师提醒: 计算机专业不是学编程,而是懂得计算机的工作原理,以及和计算机相关的学科技术.一个高手不必懂得编程,coder是最底层的人物,最重要的是思想,解决问题的思想.对计算机专业的学生来说,英语和数学也是最重要的.编程不用于实际,编得最好也是花哨,毫无意义.对于初学者来说,应该懂得更多的why 原理,而不是更多的how,那是工作后的事情. 每一计算机学者都应该有自己的思想,不要跟着别人走,不要看着别人用什么新技术作出什么来的时候,你就心动了

转:一个计算机专业毕业的银行员工工作感受

先介绍一下我国现在整个银行业及和它相关的行业(证券,保险,IT业)的一些大概情况. 最近几年是我国银行业改革的关键几年,因为2005年我国金融业将全面开放,外资银行将和中国的银行展开全面的竞争.外资银行在管理水平.金融创新能力方面要优于我们.所以,我国的银行只能利用这点时间,积极改革,加快自身的发展,尽快形成自己的核心竞争力. 我国的银行体系如下: 中国人民银行(央行)------执行国家货币政策,发行并控制货币,为其他商业银行提供贷款,作为最后贷款人来稳定金融市场 银监会------对整个银行

【转】给计算机专业大学生整理的书单

闲来无事,利用大半天的时间将自己对计算机课程的而看法整理成一张书单,希望对现在仍然迷茫的大学生有帮助.(转载请注明出处) 本人推荐的97%以上的书籍都是国外书籍,国内大学的教材还是别看了.切记,切记! 0.000 计算机科学导论 教材: 1.<编码:隐藏在硬件背后的语言> 2.<通灵芯片> 3.<D is for digital:What a well-informed person should know about computers and communications