前阵子做了件有聊的事:用Python把八字排盘写成了代码。
起因很简单。以前看大运流年,满纸天干地支,一排字密密麻麻,全靠脑补这步运好不好。后来学了点Python,心想五行生克有规则,天干地支有映射,能不能把老祖宗这套逻辑翻译成计算机能跑的数学运算?
花了两天,写了个脚本。输入公历生日和出生时辰,自动排四柱、算流年、画走势图。一口气跑了20年,过去10年加未来10年。看到图的时候,比翻十本命理书都直观。
左边是走过的路,右边是还没走的路。
这是我过去到未来的走势
用自己生日跑出来的图,20年跨度:
横轴是年份,纵轴是"综合能量值"。正分是顺境,负分是逆境。图中间有条垂直虚线,那是"现在"。
两个点最扎眼:
- 巅峰年:能量最高,对应传统说法里的"用神到位",适合冲、适合投。
- 低谷年:能量最低,对应"忌神攻身",适合缩、适合学。
你可能想问这分数怎么算出来的。粗暴概括:把天干生克、地支藏干、六冲六合全翻译成数值规则,加权合并。流年天干生助日主就加分,克制日主就减分。流年地支和日支、月支、时支发生冲,能量放大;发生合,能量衰减。不是随机数,每一分都能对应到一句命理断语。
我为什么要写这个
八字排盘的信息太密了。八个字加大运流年,几十个字堆在一起,谁看得清哪年好哪年坏?画成折线图,峰值谷底清清楚楚。哪年冲哪年守,看图比看字快十倍。
这个脚本把日支、月支、时支全算进去了。流年地支冲你的日支(自身)、月支(事业宫)、时支(子女宫),能量值里都有体现。
还有一层。八字不是判决书,是人生初始参数。我写这个脚本不是为了预测明年一定发财,而是为了回答:在给定的年份,我做哪个选择胜率更高?能量高的时候,外部环境支持你,适合主动出击;能量低的时候,阻力大,适合保存实力。趋势是概率,决策才是变量。
核心逻辑长这样
贴一段代码,看不懂没关系,看注释就行:
# 天干生克打分
defget_gan_score(main_wx, target_wx):
if target_wx == main_wx: return5.0# 比劫帮身
if (生我关系): return7.0# 印星护身
if (克我关系): return -8.0# 官杀攻身
if (我生关系): return -3.0# 食伤泄气
if (我克关系): return2.0# 财星
return0
# 地支藏干加权(本气70% + 中气20% + 余气10%)
hidden_gans = ZHI_CANGGAN.get(target_zhi, ['?'])
weights = [0.7, 0.2, 0.1]
for i, gan inenumerate(hidden_gans):
zhi_score += get_gan_score(main_wx, GAN_WUXING[gan]) * weights[i]
# 合冲修正(冲放大1.8倍,合衰减0.6倍)
if'子午'in 合冲表: total *= 1.8
if'子丑'in 六合表: total *= 0.6
这张图到底能告诉我什么
拿我自己的图说,日主癸水。
过去那十年:有个低谷年,能量-6.6,那年确实折腾,换了工作方向;有个高峰年,能量6.5,那年做成了两个项目。
未来这十年:有个低谷年,能量-3.8,适合守,不适合冲;有个巅峰年,能量5.3,印星到位,适合学习、考证、找贵人;还有个次高点,能量4.3,比劫帮身,适合合伙做事。
相当于给自己定了个节奏表:低谷年别人冲我不冲,巅峰年别人躺我不躺。你也可以拿自己过去十年的经历,对标一下图上的高低点,看对不对得上。
如果你想看看自己过去十年准不准、未来十年怎么走:后台回复「公历生日 + 出生小时」,格式1990-08-03 15,我帮你跑脚本,生成一张专属的20年走势图。
两个注意:
- 小时用24小时制,下午3点写15,晚上8点写20。
- 不知道时辰的,只发生日也行,但时柱缺了会影响精度,尤其晚年运,能问家人尽量问。
拿到图以后做两件事:先验过去,看左边过去10年的走势,回忆高点低点跟你的经历对得上不;再看未来,看右边未来10年的走势,想想哪年该冲哪年该守。
说句实在话
这套算法不是科学预测模型。我只是把传统命理里的"旺衰喜忌"规则,手动编码成了if...else...判断,本质上是专家系统,把老祖宗的断语翻译成计算机能跑的代码。
不保证准,五行能量本来就没法用仪器测;不预测发财,只提示哪年阻力小、哪年阻力大。价值在可视化,把抽象的运势变成看得见的折线。
低谷年多读几本书,高能年多走几步路,这图就没白画。
后台回复「生日+时辰」,我帮你排图。