下班騎車回家腦海中突發靈感:
你說這車軲轆是圓的,地球是圓的,太陽是圓的,腦袋是圓的。萬物之初之所以將萬物設計成圓形肯定有它的意義。
那麼能量化圓形的最好的數字就是圓周率π,而π是一組不重複且無窮盡的數字串,那麼我們的生日必定會匹配到π上的某一處。然後我再取出這個匹配到的字符串的索引值,例如你的生日是19900506,這一串數一定會匹配到π上的某處八位數。
那麼將這組數的第一位的索引值,也就是他是在π上的哪個位置的數取出來。比如是在第26592這個位置匹配到了你的生日。
我們再將這個數轉成漢字:26592—>檸
然後再對這個字進行拆分就能窺探出你的前世今生啦。
哈哈哈哈哈,波哥太有才啦。當然如果多次匹配到,恭喜你,你就是天選之人啦,多個漢字組合就會給出你一句話。或許這句話就有某種意義也說不定吧!
想到這波哥到家花了點時間寫了這個算命的腳本:
額。。。
因爲我找到的π元數據只有100萬位,匹配的精度還不夠,只能出生年份+月份,如果把這個數字延長至1千萬或者1億,那麼我上面的理論肯定是成立的。哈哈!不過波哥也加了一些自己的邏輯。
就當閉關修行的小插曲吧!沒事瞎玩唄!算啦!
代碼比較少,就貼這裏啦!想玩玩的可以參考一下哈!
#coding:utf-8
import re
'''算命腳本,提取π的數字'''
new_filename = 'F:\python\\test\文件\\new_pi_ten_million_digits_string.txt'
#格式化源文件,將其變成一行數字
with open(new_filename) as file_objeck:
pi=file_objeck.read().replace(" ", "").replace("\n","")
'''每次起始值都往前動一位,初始是0'''
start = 0
search = input('pleace enter your birthday: ')
''''''
numstr=''
newstr=''
while True:
#在π上進行循環比對
index = pi.find(search,start)
if index ==-1:
break
#將索引值重新組成一個新的字符串
numstr += str(index)
print("%s found at index %s" % (index, chr(index)) )
#整個數在π上進行比對,每次比對後向後面錯一位再比對
start = index +1
#將新組成的串分成4個一組
numList=re.findall(r'.{4}', numstr)
for num in numList:
#因爲只有2開頭的5位十進制是能看懂的漢字所以重新拼接字符串
newnum="2"+num
#得到的漢字再拼接成一句話
newstr +=chr(int(newnum))
print('上蒼送給你的一句話是:',newstr)
如果你們沒有找到更好的π源數據測試,可以用波哥的
關注公衆號-波哥的IT人生,回覆:算命腳本獲取100萬位圓周率元數據。
江湖規矩:如文章對您有幫助,請幫波哥轉發分享、點贊哦!