首页 > 其他分享 >为什么编号应该从 0 开始

为什么编号应该从 0 开始

时间:2024-11-07 19:30:35浏览次数:5  
标签:为什么 下标 开始 整数 编号 序列 应该

在常见的编程语言如 Python、Go、Java 中,序列的下标都是从 0 开始的,为什么不是从 1 开始呢?

迪杰斯特拉在 1982 年的时候就思考过编号起点的问题,那个时候还没有上面这 3 门语言呢。大概思路如下:

  1. 序列下标是连续的整数,首先要考虑的就是怎么用区间范围表示连续的整数,形如 a <= i < b 的左闭右开区间是最合理的选择。因为如果是左开区间,当连续整数从 0 开始的话下界就得是负数,不够优雅。另外,要表示下界为 0 的空序列,上界也得为负数,同样不够优雅。

  2. 对于长度为 N 的序列,0 ≤ i < N 比 1 ≤ i < N+1 更优雅,并且如果从 0 开始编号,那么一个元素的序号正好等于在它之前的元素个数。

原始手稿如下

https://www.cs.utexas.edu/~EWD/ewd08xx/EWD831.PDF
Page 1
Page 2
Page 3

标签:为什么,下标,开始,整数,编号,序列,应该
From: https://www.cnblogs.com/zikcheng/p/18533840

相关文章

  • Mac压缩工具首选?FastZip为什么那么受欢迎
    Mac上的压缩工具,各有各的好,也各有各的不好FastZip,Mac上的一款免费多功能压缩工具速度快,支持自定义压缩线程分配,最高支持8线程压缩,将近10GB的文件压缩只需二十秒左右,大文件压缩不再需要长时间等待格式齐全,压缩格式支持7Z、Zip,解压格式支持7Z、ZIP、RAR、TAR、GZIP、BZIP2、X......
  • Reviewbot 开源 | 为什么我们要打造自己的代码审查服务?
    Reviewbot是七牛云开源的一个项目,旨在提供一个自托管的代码审查服务,方便做codereview/静态检查,以及自定义工程规范的落地。静态检查不是个新鲜事。我记得早在几年前,我们就调研并使用过sonarqube做静态检查,但当时并没有大范围的推广。主要原因在于,一是发现的问题多......
  • 程序员为什么要转行做大模型?中年危机?职场发展?升职加薪?
    最近研究了一下大模型相关的内容,决定从互联网的推荐算法转行做大模型推理工程化相关的工作。所以简单说说我在这个决定中的思考过程。1.推荐算法岗的现状我本来是一个在大厂做推荐算法的工程师。收入在行业里面算是中游水平,就这么一直干着似乎也没什么问题。但是互......
  • 为什么前端打包出来的静态文件名字是一串 Hash 值 ?
    前端打包出来的静态文件名带有一串Hash值,主要是为了实现以下几个目的:缓存有效性:当文件内容发生变化时,Hash值也随之改变,这意味着浏览器能够识别文件的更新。如果文件内容没有变化,Hash值保持不变,浏览器可以从缓存中加载文件,节省网络带宽和提高加载速度。避免缓存问题:在......
  • FPC(柔性电路板)设计应该了解的阻抗控制的五个因素
    在FPC(柔性印刷电路板)设计中,阻抗控制至关重要。阻抗控制电路,也被称为阻抗条,其作用在于当电路电流超出可承受最大值时,通过阻抗来调控多余流量。那么,究竟该如何管理阻抗电路的值呢?以下五个方面会对阻抗电路的电阻产生影响。一、基板差异影响阻抗基板材料对FPC有着显著影......
  • 第三十五讲:为什么临时表可以重名?
    第三十五讲:为什么临时表可以重名?简概:还是引用​ 在上一篇文章中,我们在优化join查询的时候使用到了临时表。当时,我们是这么用的:createtemporarytabletemp_tliket1;altertabletemp_taddindex(b);insertintotemp_tselect*fromt2whereb>=1andb<=2000;sel......
  • 为什么要对参考文献著录进行要求?
    对参考文献著录进行规范要求有几个重要的原因:确保学术严谨性和规范性:参考文献的规范格式可以确保文献来源清晰、信息准确、便于他人查阅。这体现了学术研究的严谨态度,并帮助防止错误或误解。便于读者查阅和核实:规范的文献格式让读者可以轻松找到引用的资料来源,便于追溯......
  • 毕业设计【关注可白嫖源码】Web图书采购管理系统,项目编号:05614(案例分析)
    摘  要   随着图书市场的不断扩大和图书供应链的复杂化,传统的图书采购管理方式已经无法满足现代图书管理的需求。为了提高图书采购的效率和准确性,应用信息技术来设计和实现一个Web图书采购管理系统是十分必要的。   通过对用户和市场需求的分析,Web图书采购管......
  • Go 语言中遇到 _func not exported by package_ 错误,应该如何处理?
    在使用Go语言进行开发时,开发者常常会遇到许多错误提示,其中“funcnotexportedbypackage”是一个常见的错误。这种错误通常出现在尝试调用一个未导出的函数时,导致编译失败。理解这一错误的根本原因并能够解决它,对于提高开发效率非常重要。我们需要理解Go语言中“导出”和“......
  • 为什么不会听课的学生越来越多?
    为什么不会听课的学生越来越多?......