精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

計(jì)算機(jī)為什么要從0開始計(jì)數(shù)?

開發(fā) 前端
眾所周知,計(jì)算機(jī)是從0開始計(jì)數(shù),而不是我們平時(shí)常用的從1開始計(jì)數(shù),但你有想過為什么嗎?

[[357372]]

 本文轉(zhuǎn)載自微信公眾號(hào)「程序喵大人」,作者程序喵大人 。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序喵大人公眾號(hào)。

大家好,我是程序喵!

眾所周知,計(jì)算機(jī)是從0開始計(jì)數(shù),而不是我們平時(shí)常用的從1開始計(jì)數(shù),但你有想過為什么嗎?

其實(shí)不是計(jì)算機(jī)從0開始計(jì)數(shù)而是多數(shù)編程語言中的數(shù)組都使用0作為起始下標(biāo),又是為什么呢?

這個(gè)問題超綱了,程序喵不會(huì),但是本著對(duì)科學(xué)的敬畏之心,經(jīng)過大量的搜索查證,我終于找到了答案。

故事還要從一位真正的大佬艾茲格·迪科斯徹(Dijkstra)講起,

[[357373]]

艾茲格·W·迪科斯徹Dijkstra

結(jié)構(gòu)程序設(shè)計(jì)之父

提出“goto有害論”;

提出信號(hào)量和PV原語;

解決了“哲學(xué)家聚餐”問題;

Dijkstra最短路徑算法和銀行家算法的創(chuàng)造者;

THE操作系統(tǒng)的設(shè)計(jì)者和開發(fā)者;

第一個(gè)Algol 60編譯器的設(shè)計(jì)者和實(shí)現(xiàn)者;

與D. E. Knuth并稱為我們這個(gè)時(shí)代最偉大的計(jì)算機(jī)科學(xué)家的人。

這里貼出我翻譯后的大佬語錄:為了表示自然數(shù)1,2,3,4...14...的子序列,一般有四種序列的表示方法:

a) 2 ≤ i < 13

b) 1 < i ≤ 12

c) 2 ≤ i ≤ 12

d) 1 < i < 13

以上的幾種表達(dá)方式里,有哪一種比其他的好嗎?

是的,a和b有較為明顯的優(yōu)點(diǎn):他們上下界數(shù)值之間的差值就是這個(gè)序列的長(zhǎng)度。在任何一種表示中,兩個(gè)子序列相鄰,最好是其中一個(gè)的上界等于另外一個(gè)的下界,但這還不能抉擇出a和b方式哪種更好,繼續(xù)分析;

假設(shè)序列里要包含最小的自然數(shù),如果使用b和d這種方式,那下界就必須是個(gè)非自然數(shù),這就不太好看了,所以這里更傾向于使用a和c的方式,即使用≤方式表示下界。這里如果使用≤表示上界,那一個(gè)空的子序列表示方式也將會(huì)很丑陋,所以對(duì)于上界,大佬的結(jié)論是更喜歡使用a和d中的<方式,結(jié)合上一小段的分析,a方式最終獲勝,繼續(xù)分析;

當(dāng)需要表示一個(gè)長(zhǎng)度為N的序列時(shí),如果想通過下標(biāo)來區(qū)分其中的元素,那又來了一個(gè)棘手的問題:初始元素的下標(biāo)值應(yīng)該用多少呢,如果從1開始,那范圍變成1 ≤ i < N+1,如果從0開始,那范圍會(huì)是0 ≤ i < N,顯然后一種方式更優(yōu)雅更直觀,所以大佬最后的結(jié)論是自己更傾向于一個(gè)序列的表示最好從0開始。

大佬語錄總結(jié)

在進(jìn)行范圍表達(dá)的時(shí)候,使用左閉右開的方式更優(yōu)雅,他思考過,在處理長(zhǎng)度為N的序列時(shí),到底第一個(gè)元素的下標(biāo)使用0更合適還是使用1更合適?他的出發(fā)點(diǎn)很簡(jiǎn)單,那就是哪種方式更優(yōu)雅。首先確定使用左閉右開的方式,當(dāng)下標(biāo)從1開始時(shí),下標(biāo)范圍為1<=i個(gè)元素的下標(biāo)。<>

難道只有優(yōu)雅這一個(gè)原因嗎?其實(shí)下標(biāo)從0開始主要的意義是表示偏移,下面舉例:

數(shù)組為什么起始下標(biāo)是0?其實(shí)數(shù)組是一種線性結(jié)構(gòu),它有一段連續(xù)的內(nèi)存空間,存儲(chǔ)一組具有相同類型的數(shù)據(jù)。

如圖,拿一個(gè)長(zhǎng)度為10的int類型數(shù)組舉例,系統(tǒng)就會(huì)為該數(shù)據(jù)分配一段連續(xù)的內(nèi)存空間,空間大小為40個(gè)字節(jié),其中內(nèi)存塊首地址base_address = 100。

數(shù)組是可以隨機(jī)訪問的,當(dāng)訪問第i個(gè)元素時(shí),需要定位第i個(gè)元素的地址,定位公式如下:

  1. 第i個(gè)元素地址=base_address + i * data_type_size 

其中data_type_size表示數(shù)組中元素類型的大小,int類型大小是4字節(jié),所以公式里data_type_size等于4。在這里,下標(biāo)可以理解為偏移,數(shù)組的首地址就是base_address,其中a[0]就是偏移為0的位置,a[i]就是偏移了i個(gè)data_type_size大小的位置,所以計(jì)算a[i]地址的公式為:

  1. a[i]地址=base_address + i * data_type_size 

這里如果數(shù)組下標(biāo)從1開始,那么a[i]地址的公式為:

  1. a[i]地址=base_address + (i - 1) * data_type_size 

兩個(gè)公式顯而易見,下標(biāo)從0開始的更加簡(jiǎn)單,后者從1開始,每次訪問數(shù)組元素都需要額外做一次減法操作,效率更低。

我們知道在Python中數(shù)組也是將0作為起始下標(biāo),對(duì)此Python之父Guido van Rossum也給出過正面回答,下面貼出他的翻譯后的語錄:

大佬語錄

關(guān)于這個(gè)問題之前就有人在Twitter上詢問過我,我給出過回答。這個(gè)問題我思考過很久:ABC語言是Python的祖先之一,使用的索引就是從1開始的,而另一門對(duì)Python有重要影響的C語言,它的索引就是從0開始。之前的幾門編程語言(Algol,F(xiàn)ortran, Pascal)有使用1作為起始索引的,有使用某個(gè)變量作為索引。而推動(dòng)我使用0作為起始索引的原因之一就是切片語法。

讓我們先來看看切片的用例,可能關(guān)于切片最常見的用法就是“取前n個(gè)元素”和“取從i開始的后n個(gè)元素”,如果在使用這兩種用法時(shí)不需要帶有+1或者-1的補(bǔ)償操作,那代碼會(huì)很優(yōu)雅。

使用基于0的索引方式,那上面兩種切片用法就會(huì)非常漂亮:a[:n]和a[i:i+n],前者是a[0:n]的縮寫。

使用基于1的索引方式,如果你想用a[:n]表示取前n個(gè)元素的意思,要么使用閉合區(qū)間切片語法,要么使用起始索引加切片長(zhǎng)度作為參數(shù)的方法。半開區(qū)間切片方法如果和基于1的索引方式結(jié)合起來那代碼將會(huì)變得不優(yōu)雅。而如果使用閉合區(qū)間切片語法的話,為了從第i位索引開始取n個(gè)元素,那就需要把表達(dá)式寫成a[i, i+n-1]。這樣看來也許使用切片起始位+長(zhǎng)度的方式在基于1的索引方法中更合適?這樣你可以寫成a[i:n],并且ABC語言就是這么做的,你可以寫成a@i|n這種特別的語法。

但是,index:length這種方式在其它情況下也適用嗎?我有點(diǎn)記不清了,但我認(rèn)為我確實(shí)是被半開區(qū)間這種優(yōu)雅的語法迷住啦。特別是當(dāng)兩個(gè)切片操作相鄰時(shí),第一個(gè)切片的終點(diǎn)索引是第二個(gè)切片的起始索引時(shí),這種語法簡(jiǎn)直太漂亮啦。例如你想要將一個(gè)字符串使用i和j分成三部分,這三部分會(huì)是a[:i],a[i:j]和a[j:],真是太漂亮啦。

這就是為什么Python使用0作為起始索引的原因。

看到這里你知道為什么很多編程語言都是從0開始計(jì)數(shù)了嗎?

文中如果有翻譯的不妥之處還請(qǐng)大家指正(可以私聊或在后臺(tái)發(fā)給我),十分感謝!

參考資料

https://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD831.html

https://blog.csdn.net/csdnsevenn/article/details/107421466

https://docle.github.io/2018/08/26/Why-Numbering-Should-Start-At-Zero/

https://www.reddit.com/r/Python/comments/1p2za1/guido_van_rossum_why_python_uses_0based_indexing/

 

責(zé)任編輯:武曉燕 來源: 程序喵大人
相關(guān)推薦

2019-04-22 09:58:25

C語言Web操作系統(tǒng)

2011-07-03 18:28:13

網(wǎng)站優(yōu)化

2015-08-11 10:07:56

計(jì)算機(jī)時(shí)間編程語言

2011-12-01 10:55:16

超級(jí)計(jì)算機(jī)高性能計(jì)算Top500

2023-05-11 10:16:32

數(shù)字化轉(zhuǎn)型技術(shù)領(lǐng)導(dǎo)者

2024-02-22 08:17:31

十六進(jìn)制數(shù)字計(jì)算

2012-12-16 15:26:49

超級(jí)計(jì)算機(jī)LinuxHPC

2020-08-31 14:56:24

補(bǔ)碼存儲(chǔ)數(shù)據(jù)

2021-07-09 06:48:29

數(shù)組存儲(chǔ)內(nèi)存

2025-05-29 08:00:00

數(shù)組編程語言

2021-01-25 07:40:37

Druid數(shù)據(jù)eBay

2020-04-20 08:08:23

MongoDBElasticsear數(shù)據(jù)庫(kù)

2023-07-07 10:53:08

2021-04-27 17:37:35

架構(gòu)運(yùn)維技術(shù)

2014-02-01 21:25:08

Python數(shù)組

2020-08-26 09:56:30

WindowsLinuxUbuntu

2020-10-13 09:25:27

ESClickHouse搜索引擎

2020-03-12 08:00:34

MySQL遷移TiDB

2024-04-11 14:03:24

云計(jì)算云提供商

2018-06-15 21:26:13

PythonCrystal語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

丝袜美腿成人在线| 一区二区精彩视频| 五月婷婷综合网| 美女被啪啪一区二区| 国产在线一级片| 婷婷综合亚洲| 日韩精品中文字幕在线| 成人性生交免费看| 91豆花视频在线播放| 日本一区二区在线不卡| 97人人模人人爽人人少妇| 麻豆久久久久久久久久| 亚洲国产精品成人| 亚洲人成网站777色婷婷| 国产999免费视频| 日韩大尺度黄色| 亚洲影视在线播放| 亚洲乱码国产乱码精品天美传媒| 亚洲精品一区二区三区新线路| 久久久蜜桃一区二区人| 色综合久久悠悠| 国产一区二区三区视频播放| 色婷婷av一区二区三区丝袜美腿| 欧美一级欧美三级在线观看 | 天堂av在线免费| 久草这里只有精品视频| 欧美专区在线观看| 激情小说中文字幕| 亚洲澳门在线| 中文字幕日韩av电影| 黄色在线免费播放| 欧美不卡在线观看| 欧美日韩一二三区| 免费看a级黄色片| 一区二区乱码| 午夜视黄欧洲亚洲| 国产精品videossex国产高清| 激情在线小视频| 中文字幕 久热精品 视频在线 | 在线观看一区二区三区视频| 99热播精品免费| 在线一区二区三区四区| 黄www在线观看| 国产福利在线免费观看| 亚洲激情一二三区| 永久免费网站视频在线观看| 国产原创视频在线观看| 中文字幕一区二区三区在线播放| 天天久久人人| www.久久热.com| 日本一区二区免费在线| 日韩精品一区二区三区色偷偷 | 久久久久99精品久久久久| 亚洲女人毛茸茸高潮| 久久成人综合| 久久久av网站| 亚洲国产精品久| 天天综合网91| 超在线视频97| 久久成人在线观看| 一本色道久久精品| 日本一区二区在线播放| 激情五月婷婷网| 免费精品99久久国产综合精品| 国产精品久久久久久久久久免费| 中文人妻熟女乱又乱精品| 久久精品免费观看| 96pao国产成视频永久免费| av加勒比在线| 成人听书哪个软件好| 国产一区在线免费| 日本亚洲一区| 国产精品乱人伦中文| 自拍亚洲欧美老师丝袜| 欧美xxx黑人xxx水蜜桃| 午夜成人在线视频| 999在线免费视频| 国产精品亚洲四区在线观看| 日韩美女视频在线| 好吊日免费视频| 色999国产精品| 九九九热精品免费视频观看网站| 日本熟妇毛耸耸xxxxxx| 日韩中文欧美在线| 亚洲a在线观看| 亚洲三区在线播放| 国产精品久久毛片av大全日韩| 亚洲一区 在线播放| 182在线视频观看| 欧美日韩精品一区二区三区四区| 午夜视频在线网站| 欧美久久精品| 中文字幕欧美日韩va免费视频| 校园春色 亚洲| 免费在线亚洲欧美| 国产日韩在线观看av| 全国男人的天堂网| 国产精品网站一区| 久久av综合网| 欧美一级做一级爱a做片性| 亚洲电影av在线| 亚洲区一区二区三| 久久久久久自在自线| 91偷拍精品一区二区三区| 精品推荐蜜桃传媒| 亚洲综合区在线| the porn av| 日本午夜精品久久久| 粗暴蹂躏中文一区二区三区| 日韩中文字幕在线观看视频| 国产不卡视频一区二区三区| 亚洲欧美日韩在线综合| 自拍一区在线观看| 欧美mv和日韩mv国产网站| 精品日韩在线视频| 亚洲精品孕妇| 成人黄色片视频网站| 欧美三级电影一区二区三区| 欧美性20hd另类| 99免费观看视频| 亚洲精品极品少妇16p| 国产成人欧美在线观看| 视频一区二区免费| 伊人一区二区三区| 亚洲免费黄色网| 日本不卡二三区| 日韩女在线观看| 深夜福利在线观看直播| 午夜久久久久久久久| 亚洲天堂小视频| 亚洲精品一二三区区别| 国产在线不卡精品| 国产永久免费高清在线观看视频| 婷婷中文字幕综合| 88av在线播放| 亚洲大胆在线| 国产精品免费一区二区三区| 宅男在线观看免费高清网站| 欧美福利视频一区| 国产精品国产三级国产传播| 蜜桃av一区二区三区| 色综合视频二区偷拍在线| 666av成人影院在线观看| 亚洲欧美日韩中文在线制服| www.国产色| 91免费版在线| 欧美黄网站在线观看| 天海翼亚洲一区二区三区| 97精品一区二区视频在线观看| 六月婷婷综合网| 亚洲va天堂va国产va久| 久久久久成人精品无码中文字幕| 亚洲国内欧美| 欧美12av| 日本精品网站| 日韩中文字在线| 国产视频在线观看免费| 亚洲女厕所小便bbb| 91精品人妻一区二区三区四区| 狠狠综合久久| 蜜桃久久精品乱码一区二区| 精品3atv在线视频| 社区色欧美激情 | 99热这里只有精品9| 一区二区三区久久久| 午夜剧场免费看| 另类图片国产| 在线国产精品网| 91精品国产自产精品男人的天堂| 97香蕉超级碰碰久久免费软件| 日韩porn| 欧美精品一二三区| 日本中文字幕免费| 国产色综合一区| av噜噜在线观看| 一本久道久久综合婷婷鲸鱼| 日韩亚洲视频在线| 日韩一区二区三区色| 69av成年福利视频| 九一国产在线| 日韩一区二区免费视频| 99久在线精品99re8热| 欧美激情中文不卡| 亚洲黄色小说在线观看| 久久一区激情| 成人污网站在线观看| 九九亚洲视频| 成人午夜高潮视频| 日韩影院在线| 久久人人爽人人爽人人片亚洲| 手机看片1024国产| 欧美高清视频在线高清观看mv色露露十八| 精品无码一区二区三区电影桃花| 久久精品男人的天堂| 亚洲一区二区三区三州| 麻豆九一精品爱看视频在线观看免费| 中文字幕制服丝袜在线| 人人网欧美视频| 成人免费视频网址| 成人亚洲欧美| 欧美精品www| 香蕉视频在线播放| 日韩av在线免费| 国产精品视频一区二区三区,| 天天综合天天做天天综合| 秋霞欧美一区二区三区视频免费| 91在线高清观看| 在线播放黄色av| 蜜桃视频在线观看一区| 日本一道本久久| 欧美一区二区三区免费看| 视频一区国产精品| 亚州av日韩av| 粉嫩精品一区二区三区在线观看| 国产精品xxx| 日产精品久久久一区二区福利| 牛牛在线精品视频| 欧美成人国产va精品日本一级| 你懂的在线观看视频网站| 欧美精品一区二区三区四区| 一区二区三区免费在线| 欧洲亚洲精品在线| 久久久久女人精品毛片九一| 亚洲国产精品久久人人爱蜜臀| 亚洲综合久久av一区二区三区| 国产视频一区在线观看| av网站有哪些| 成人免费视频播放| 亚洲精品乱码久久久久久9色| 久久福利资源站| 中文字幕欧美区| 黄色工厂在线观看| 成人sese在线| 日本人妻一区二区三区| 国产中文字幕精品| 亚洲一区精品视频在线观看| 久国产精品韩国三级视频| 天美星空大象mv在线观看视频| 久久午夜影视| 少妇性l交大片| 日韩国产在线观看| 丁香婷婷激情网| 日韩精彩视频在线观看| 男女视频一区二区三区| 日韩成人免费在线| 一级在线免费视频| 久久爱www久久做| 国产一级免费大片| 国产在线视视频有精品| www.51色.com| 国产成人综合亚洲91猫咪| 男生和女生一起差差差视频| 国产精品18久久久久久久久| 国产吃瓜黑料一区二区| 成人午夜视频在线| 中文字幕影片免费在线观看| 91免费版在线看| 美国黄色特级片| 亚洲人精品午夜| 欧美精品乱码视频一二专区| 亚洲国产精品久久不卡毛片| 西西44rtwww国产精品| 色综合天天视频在线观看 | 欧美主播一区二区三区| 中文字幕在线观看欧美| 欧美一区二区三区日韩| 午夜精品久久久久久久99热黄桃| 欧美成人乱码一区二区三区| 人妻91麻豆一区二区三区| 精品在线观看国产| 成年人视频免费在线观看| 不用播放器成人网| 超碰在线99| 国产高清在线不卡| 99综合99| 精品国产福利| 日韩黄色大片网站| 大片在线观看网站免费收看| 夜夜精品视频| 国产一级片自拍| 国产成人综合网站| 五月天综合视频| 亚洲女同ⅹxx女同tv| 日韩精品久久久久久久酒店| 91成人国产精品| 亚洲精品国产手机| 亚洲片国产一区一级在线观看| 黄色av免费在线| 青青草国产精品一区二区| 91麻豆精品| 久久久久久久久一区| 亚洲激情久久| 国产第一页视频| 国产成人免费视频网站 | 欧美精品色图| 男人添女荫道口女人有什么感觉| 天堂成人国产精品一区| 黑人性生活视频| 欧美激情中文不卡| 动漫精品一区一码二码三码四码| 在线观看一区二区精品视频| 老熟妇高潮一区二区高清视频| 日韩有码视频在线| 中文字幕乱码中文乱码51精品| 亚洲va久久久噜噜噜久久天堂| 免费精品国产| 男的插女的下面视频| 久久成人av少妇免费| 一级片视频免费看| 午夜视频一区二区| 精品国自产在线观看| 色妞色视频一区二区三区四区| 日韩电影毛片| 国产精品污www一区二区三区| 欧美激情欧美| 激情五月亚洲色图| 91亚洲精品久久久蜜桃| 久热精品在线观看| 69久久99精品久久久久婷婷| 国产黄在线看| 日本国产一区二区三区| 超碰97久久| av在线免费观看国产| 精品一区二区三区的国产在线播放| 99久久久无码国产精品性 | 亚洲一区二区三区高清视频| 亚洲老头同性xxxxx| 国产传媒在线| 欧美极品aⅴ影院| 免费在线观看av网址| 538在线一区二区精品国产| h视频在线观看免费| 青草成人免费视频| 亚洲理论电影片| 国产91xxx| bt7086福利一区国产| 久草免费在线视频观看| 91麻豆精品国产91久久久久久久久 | 久久视频免费在线| 韩国一区二区在线观看| 国产jizz18女人高潮| 欧美三级午夜理伦三级中视频| 男人av在线| 国产成人精品综合久久久| 自拍自偷一区二区三区| 欧美日韩在线中文| 国产欧美日韩亚州综合 | 精品美女一区二区| 久久不射影院| 久99久在线| 视频一区二区三区入口| 天堂久久精品忘忧草| 欧美在线免费观看视频| 91在线不卡| 成人自拍性视频| 亚洲午夜极品| 国产伦精品一区二区免费| 欧美日韩亚洲一区二区| 精品电影在线| 国产日韩欧美日韩大片| 欧美日本亚洲韩国国产| 亚洲av成人片无码| 色噜噜狠狠成人网p站| 亚洲麻豆精品| 91手机在线播放| 免费在线观看成人av| 国产又粗又长又黄的视频| 欧美不卡一区二区| 天堂中文在线播放| 亚洲国产精品毛片| 国产麻豆视频一区二区| 国产成人在线播放视频| 正在播放国产一区| 无人区乱码一区二区三区| 极品美女扒开粉嫩小泬| 国产精品福利一区二区三区| www.黄色一片| 日韩美女毛茸茸| 91精品秘密在线观看| 亚洲久久久久久| 精品视频一区三区九区| 色呦呦在线播放| 青青成人在线| 国产成a人无v码亚洲福利| 亚洲大尺度在线观看| 欧美日韩国产成人在线| 国产一区二区三区四区大秀| 污污视频在线免费| 天天av天天翘天天综合网色鬼国产| 91精品国产综合久久久久久豆腐| 国产99午夜精品一区二区三区 | 国产精品jizz在线观看美国| 播金莲一级淫片aaaaaaa| 91精品国产日韩91久久久久久| 黄色在线免费观看网站| 国产麻豆电影在线观看| 久久综合精品国产一区二区三区| 国产精品亚洲欧美在线播放| 4k岛国日韩精品**专区| 91精品电影|