Piでラッキーナンバーを探す

[この記事を読み終えるのに3。2年かかるかもしれません]

人々はpiに精通しているので、この無限で非周期的な数に特別な数はありますか?たとえば、QQ番号、ガールフレンドの誕生日、携帯電話番号などです。この質問にはあまり意味や技術的な内容はありませんが、非常に興味深いものです。

Piでラッキーナンバーを探す

MITのWebサイトでは、10億桁のpiが提供されており、ファイルサイズは約1GBです。Https://stuff.mit.edu/afs/sipb/contrib/pi/pi-billion.txt

これは人間が計算した最長のpiではありませんが、興味深い数値を見つけるには十分です。

3.14159265358979323846264338327950288419716939
9375105820974944592307816406286208998628034825
3421170679821480865132823066470938446095505822
3172535940812848111745028410270193852110555964
462294895.........6421977675387131968218819563
5848934815504410194647387557034502943416861599
3243541997318143550603927346434543524276655356
7435702193963945819905483278746713986820931963
53628204612755715171395115275045519【第10亿位数字】
【一秒钟数10位数字,不吃不睡,数到这儿,大概是3.2年之后了】
#可左右滑动

+ 1s + 1s + 1s + 1s + 1s + 1s + 1s + 1s + 1s + 1s + 1s

たとえば、誰かの誕生日が19901116である場合、10億パイの数字を見つけたい場合は、Rを介してそれを行うことができます。

pi_url = "https://stuff.mit.edu/afs/sipb/contrib/pi/pi-billion.txt"
system(paste0("wget ", pi_url))
library(readr)
my_pi <- read_file("pi-billion.txt")
tt <- gregexpr(pattern ='19901116',my_pi)
tt[[1]]-2 #去掉整数位和小数点
#可左右滑动
[1]   5480651  16906344  20378709  73339152 124427557 160097772 640051361
 [8] 696422030 744245299 794948367 797159618 850405243 920032661 973577551
attr(,"match.length")
 [1] 8 8 8 8 8 8 8 8 8 8 8 8 8 8
attr(,"useBytes")
[1] TRUE
#可左右滑动

つまり、piの小数点以下5486051から始まり、誕生日が初めて表示され、10億桁全体で14回表示されます。
上記のプロセスは、Pythonを介して実行することもできます。

import re
ff = open("pi-billion.txt","r")
ff_content = ff.read()
for i in re.finditer("19901116", ff_content):
    print(i.start()-1, i.group())
ff.close()
5480651 19901116
16906344 19901116
20378709 19901116
73339152 19901116
124427557 19901116
160097772 19901116
640051361 19901116
696422030 19901116
744245299 19901116
794948367 19901116
797159618 19901116
850405243 19901116
920032661 19901116
973577551 19901116

結果はRと同じです。
理論的には、確率計算によれば、10億桁の8桁の数字の理論上の頻度は10であるはずなので、ここに14回現れるのは合理的であるはずです。つまり、すべての人の誕生年、月、日は、piの小数点以下10億桁で10回検出される必要があります。

さらに、私は自分の9桁のQQアカウントもテストしました。理論的には、頻度は1であるはずですが、結果は実際には1であり、piの小数点以下207889022にあります。

+ 1s + 1s + 1s + 1s + 1s + 1s + 1s + 1s

Piでラッキーナンバーを探す

おすすめ

転載: blog.51cto.com/15069450/2577379