四虎综合网,老子影院午夜伦不卡国语,色花影院,五月婷婷丁香六月,成人激情视频网,动漫av网站免费观看,国产午夜亚洲精品一级在线

每日經(jīng)濟(jì)新聞
要聞

每經(jīng)網(wǎng)首頁 > 要聞 > 正文

圓周率里有每個(gè)人的銀行卡密碼和生日?這個(gè)程序員的操作亮了

2018-03-14 22:34:24

今天是3月14日,這也是一個(gè)特殊的節(jié)日,是國際數(shù)學(xué)家聯(lián)盟設(shè)立的國際數(shù)學(xué)日,也叫圓周率日、或者π日。原因很簡單,π約等于3.14嘛!

圓周率的概念,在人類文明史上由來已久。一塊產(chǎn)于公元前1900年到1600年前的巴比倫石匾上,記載著圓周率= 25/8 = 3.125;古埃及文物,萊因德數(shù)學(xué)紙草書(Rhind Mathematical Papyrus)則記載圓周率等于16/9的平方,約等于3.1605。在中國,早在周朝成書的《周髀算經(jīng)》中,就曾經(jīng)有過“周三徑一”的表述。

▲圖片來源:視覺中國

有人好奇,既然圓周率是無限不循環(huán)小數(shù),會(huì)不會(huì)包括這個(gè)世界上的任何信息,包含了這個(gè)世界?

能否包含“任何信息”不好說,但一個(gè)冷知識(shí)是,圓周率里有每個(gè)人的銀行卡密碼!不信?看看這位來自知乎的程序員朋友是怎么證明的。

以下內(nèi)容來自知乎用戶vortex的回答:

(每經(jīng)小編注:本文略有刪節(jié))

這個(gè)問題挺有意思,非數(shù)學(xué)專業(yè),就從計(jì)算機(jī)的角度分析一下這個(gè)問題吧。

---我是條分割線----

為了分析這個(gè)問題,我先用y-cruncher跑出了π的前10億位,感覺應(yīng)該夠用!

不夠用也沒辦法了,內(nèi)存有限,而且跑程序時(shí)CPU占用率100%,風(fēng)扇吹的我心慌。

▲讓人無奈的占用率

計(jì)算前10億位共用時(shí)190.515秒,數(shù)據(jù)以txt的格式保存,大小976.563MB。

下面開始我們的分析工作。

先簡單的搜索一下,發(fā)現(xiàn)自己能想到的幾個(gè)六位數(shù)字都出現(xiàn)了(包括我的銀行卡密碼)

舉幾個(gè)例子:

▲000000出現(xiàn)在小數(shù)點(diǎn)后第1,699,927位

▲111111出現(xiàn)在小數(shù)點(diǎn)后第255,945位

▲222222出現(xiàn)在小數(shù)點(diǎn)后第963,024位

▲123456出現(xiàn)在小數(shù)點(diǎn)后第2,458,885位

注:每行有1024個(gè)字符,所以計(jì)算公式應(yīng)為1024*(行數(shù)-1)+列數(shù)-2,其中2為開頭的“3.”

但是不可能手動(dòng)把000000~999999全驗(yàn)證一遍吧(雖然我今天很閑),還是要寫個(gè)程序跑一下。

不考慮復(fù)雜度問題的話,代碼很快就寫完了,只有短短的14行。

因?yàn)槲矣玫氖莍ndex,如果密碼不存在的話,則會(huì)直接拋出異常。但是我的直覺是000000~999999是都存在的(其實(shí)是我懶得多寫代碼了)

檢索的速度大概是1000條/秒,接下來就是耐心的等待過程。

程序跑完了!不出所料,所有的六位銀行卡密碼在π中都是存在的。

最后出現(xiàn)的密碼是569540,位于小數(shù)點(diǎn)后14,118,307位。(10億位有點(diǎn)過剩?。。?/p>

▲統(tǒng)計(jì)數(shù)據(jù)截圖

雖然π是無限不循環(huán)的,但是對我來說只截止到小數(shù)點(diǎn)后7,599,477位。

---又是條分割線----

第一次收到這么多的贊。

于是我又寫了個(gè)程序把π前10億位中的生日給跑了出來,生日的范圍為1920~2020共計(jì)101年。

上代碼~供有興趣的朋友研究,可以一起討論如何計(jì)算的更快。(感覺這個(gè)完全可以出一個(gè)面試題的!我水平是不太行,下面是我想到的方法。)

---還是條分割線----

大家不要私信給我發(fā)銀行卡密碼了!很危險(xiǎn)的!真要查的話,有個(gè)朋友分享了在線查詢的鏈接。范圍精確到2億位。

下面的內(nèi)容非程序員可忽略...

經(jīng)評(píng)論區(qū)的朋友們啟發(fā),而且實(shí)在受不了別人噴我程序運(yùn)行的慢了。又寫了一個(gè)更快的檢索6位數(shù)字(就是所謂的銀行卡密碼)的算法。

感興趣的程序員可以看一下。我感覺速度還行。十幾秒鐘就能檢索完畢。更快的我暫時(shí)也還沒想到……畢竟答主還只是一個(gè)大二在校生,也沒搞過ACM競賽,水平有限。


為程序員的智慧點(diǎn)贊!

來源:本文轉(zhuǎn)自知乎話題“圓周率里包含你的銀行卡密碼嗎?” 作者:vortex

每經(jīng)編輯:趙云

每日經(jīng)濟(jì)新聞已獲轉(zhuǎn)載授權(quán)

責(zé)編 秦勇

特別提醒:如果我們使用了您的圖片,請作者與本站聯(lián)系索取稿酬。如您不希望作品出現(xiàn)在本站,可聯(lián)系我們要求撤下您的作品。

圓周率 程序員

歡迎關(guān)注每日經(jīng)濟(jì)新聞APP

每經(jīng)經(jīng)濟(jì)新聞官方APP

0

0