[讨论] 斗数统计程式

楼主: Cigol (失去左手的荆无命)   2016-04-30 17:19:46
从以前开始接触紫微斗数,就一直有些疑惑:
命盘到底有多少个?
每个格局出现的机率如何?
哪些时辰能排出某个命盘?
本人用 python 3 写了些程式试图回答这些问题
程式包括两部分:ziweichart, ziweistat
ziweichart 主要功能在于建立命盘数据库
ziweistat 对数据库内容进行统计
程式码在此:
https://dl.dropboxusercontent.com/u/1009478/ziweichart.html
https://dl.dropboxusercontent.com/u/1009478/ziweistat.html
ziweichart 的程式功能简述如下:
setchart( ):
输入干支月日时(农历)就可以排出命盘,
目前的设计是只排出十四主星、六吉六煞、禄存天马
有需要排其他星曜的可以自己修改程式
chart_data( ):
输入起迄年的干支,可以排出这段时间内所有的命盘
这边要注意理论与实际月历的不同
理论上从甲子年1月1日子时到癸亥年12月30日亥时有 259200 个时辰
但实际月历上的一甲子(譬如 1924-1983 或1984-2044),
因为有闰月、小月的关系,
出现的命盘数会大于 259200
如果你想要得到实际月历年某个区间的命盘
可以在 chart_data( ) 里输入闰月、小月的资料做调整。
chart_set( ):
删除重复的命盘,
统计每种命盘出现几次
并且帮每种命盘进行编号
在不考虑闰月小月,
且只排十四主星、六吉六煞、禄存天马的情况下
一甲子内只有 34560 种命盘
每种命盘最多出现 12 次,最少出现 3 次,平均次数为 7.5
===========================
ziweistat 读取命盘数据库,进行统计,功能简述如下:
birthdays( ):
输入命盘的编号,可以显示有哪些时辰会排出这种命盘
举例来说,能排出跟甲子年1月1日子时相同命盘有六个:
甲子、甲辰、甲申年1月1日子时, 1月20日子时
frq():
输入星曜或宫名,统计此星曜或宫在每个支宫出现的次数
譬如一甲子内,紫微出现在各支宫的百分比如下:
子: 4.67
丑: 8.00
寅:10.00
卯:10.00
辰:11.33
巳:10.00
午:10.67
未: 8.67
申: 7.33
酉: 6.67
戌: 6.00
亥: 6.67
form():
输入格局条件,找出符合此格局的命盘出现次数,
并找出哪些时辰能排出此命盘
举例来说,
若条件为:未宫坐命, 命无主星, 对宫有天同巨门
则一甲子内有 240 个符合条件的命盘,
有 2304 的时辰会出现此盘,比例为 0.89%
若条件为:未宫坐命, 命无主星, 对宫有天同巨门, 三方四正无煞星
则一甲子内只剩 34 个符合条件的命盘,
只有 321 的时辰会出现此盘,比例为 0.12%
==============
上述所有程式码与范例都已公开
本人不是专业的程式设计师
也许程式写的不是很漂亮,但希望抛砖引玉
有兴趣的板友欢迎自由取用
作者: aki0530 (子晨)   2016-04-30 21:49:00
作者: zephyrmartin (赵云)   2016-05-01 02:50:00
酷喔 同是工程师推一个!!

Links booklink

Contact Us: admin [ a t ] ucptt.com