歡迎光臨
每天分享高質量文章

「π」裡藏著所有人的銀行卡密碼和生日?

導讀:3月14日是圓周率節,是全人類的傳統節日。自古以來,在3月14日這一天,世界各族人民會吃一個派慶祝節日,祈求好運,親友之間也會互贈蘋果派、藍莓派、草莓派、蛋黃派、巧克力派……表達愛意和祝福。

本文並不是哪家食品公司的廣告,資料叔只是想皮一下,然後再說說正經的:π這個數字到底有什麼魔力,能讓全世界的極客聯合起來,為它創造一個節日?

01 π裡藏著所有人的銀行卡密碼?

π是無限不迴圈小數,也就是說π小數點後面的數字是無窮無盡的,並且是毫無規律的。

但盯著這些數字看,你可能會根據自己的主觀需求給這些數字賦予一些特殊含義。比如,資料叔有個小學同學,是某年9月26日出生的。學習π的時候,這位同學就很自豪地說π裡有他的生日(3.1415926),讓我們這些小夥伴羨慕不已,感慨自己生錯了時代日期。

那麼如果是更多位的“特殊含義”的數字呢?比如,每個人的銀行卡密碼都是6位,那麼問題來了,π小數點後面,是否會有連續的6位數字,恰好是你的銀行卡密碼?

1. 銀行卡密碼

資料叔找到一個查詢特定數字組合是否會出現在π小數點後前20億位的網站,玩了一個下午,你也可以去玩一下,網址是:

http://www.subidiom.com/pi/pi.asp

接下來說說資料叔都玩了什麼。首先,我試了一下被稱為“最爛密碼”的123456:

結果,123456這個組合在π中是存在的,從π小數點後的第2,458,885位開始出現。

然後,資料叔試了一下自己的銀行卡密碼,結果也沒逃脫π的魔掌。截圖就不上了。

實際上,早有大神跑過一個程式,證明瞭所有的6位數字組合——從000000到999999,都會出現在π的小數點後面,最後出現的組合是569540,位於小數點後14,118,307位[1]。所以,上面那個網站提供的前2,000,000,000位,有點資源過剩。於是,資料叔就想延長數字組合的長度,挑戰一下這個網站的極限。

2. 生日

每個人的生日都可以用一個8位數字組合表示。π是一個超越數,資料叔就想到了最近忙著帶鹽程式設計大賽的楊超越。某百科資料顯示,楊超越的生日是19980731,到網站查詢一下,結果楊超越沒能超越π的前20億位:

再試試程式猿的老婆新垣結衣的生日19880611,結果也一樣:

與銀行卡密碼的情況相同,也有大神在π的10億位之內跑出了所有人的生日。但如果我們再增加數字組合的長度呢?

3. 手機號

中國大陸的手機號碼都是11位,郝雲有一首歌叫《結了》,歌詞裡唱出一個手機號:13910733521(這是真實存在的手機號,歸屬北京移動,但我勸你沒事不要騷擾人家),我們就先試試這個手機號:

結果是,π小數點後的前20億位中不包含這個數字組合,資料叔第一次“贏了”π。

音樂資源載入中…

資料叔又試了自己的號碼,也是不存在;又開啟通訊錄,試了幾個朋友的號碼,還是不存在。你也可以拿自己和朋友的手機號試一試。看來,數字組合延長到11位,就沒那麼容易出現了,但我們也只是查詢了π小數點後的前20億位而已,π小數點後面還有無窮無盡的位。

02 圓周率鋼琴曲:請開始你的表演

有人把數字寫進歌詞,還有人直接把數字改編成鋼琴譜。YouTube使用者aSongScout上傳了這首“圓周率鋼琴曲”: