下班骑车回家脑海中突发灵感:
你说这车轱辘是圆的,地球是圆的,太阳是圆的,脑袋是圆的。万物之初之所以将万物设计成圆形肯定有它的意义。
那么能量化圆形的最好的数字就是圆周率π,而π是一组不重复且无穷尽的数字串,那么我们的生日必定会匹配到π上的某一处。然后我再取出这个匹配到的字符串的索引值,例如你的生日是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)
如果你们没有找到更好的π源数据测试,可以用波哥的