日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

圆周率里有每个人的银行卡密码和生日?混知乎的程序员果然都是神一般的存在...

發(fā)布時間:2023/12/4 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 圆周率里有每个人的银行卡密码和生日?混知乎的程序员果然都是神一般的存在... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


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


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




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


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


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


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


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


讓人無奈的占用率


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


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


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


舉幾個例子:


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


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


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


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


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


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


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



因為我用的是index,如果密碼不存在的話,則會直接拋出異常。但是我的直覺是000000~999999是都存在的(其實是我懶得多寫代碼了)


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


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


最后出現(xiàn)的密碼是569540,位于小數(shù)點后14,118,307位.(10億位有點過剩啊!)


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



留個彩蛋~

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


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


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


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




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


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


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


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



---打開彩蛋的分割線----


上面的彩蛋要打開了。


小數(shù)點后第7,599,469位至第7,599,477位


小數(shù)點后7,599,469位至7,599,477位是19980304,也就是1998年3月4號,一個女孩的生日咯~


本文來源:

https://www.zhihu.com/question/23419402/answer/327661779

作者:vortex

文章版權(quán)歸原作者所有,轉(zhuǎn)載僅供學(xué)習(xí)使用,不用于任何商業(yè)用途,如有侵權(quán)請留言聯(lián)系刪除,感謝合作。


總結(jié)

以上是生活随笔為你收集整理的圆周率里有每个人的银行卡密码和生日?混知乎的程序员果然都是神一般的存在...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。