首先声明,这篇文章可能很快就会消失了,毕竟已经2020年了,还有很多人觉得奇门遁甲是"剪纸成人,撒豆成兵"的法术.其实奇门遁甲是一种符号预测学.这里我写了一个python程序来排盘(因为奇门遁甲的排盘实在太麻烦了),并普及一下其算法原理;
将排盘参数包装成一个dict数据,然后运行结果(这东西还是比较…所以有需要的私信我索取源码):
:2020-1-12 21:56:00 农历时间:农历己亥年(猪)腊月十八
节气:2020-1-6 6:6:00小寒中元 干支:己亥 丁丑 甲寅 乙亥
此局为阳遁八局 直符:天英星 直使:景门
┌───────────┬──────────┬───────────┐
│ 玄武 │ 九地 │ 九天 │
│ 天任 戊│ 天冲 壬│ 天辅 癸│
│ 开门 癸│ 休门 己│ 生门 辛│
├───────────┼──────────┼───────────┤
│ 白虎 │ │ 直符 │
│ 天蓬 庚│ │ 天英 己│
│ 惊门 壬│ 丁│ 伤门 乙│
├───────────┼──────────┼───────────┤
│ 六合 │ 太阴 │ 腾蛇 │
│ 天心 丙│ 天柱 乙│禽 天芮 辛│
│ 死门 戊│ 景门 庚│丁 杜门 丙│
└───────────┴──────────┴───────────┘
[Finished in 0.9s]
<<奇门遁甲>>是中国古代术数著作,也是奇门、六壬、太乙三大秘宝中的第一大秘术,为三式之首,最有理法,被称为黄老道家最高层次的预测学,号称帝王之学/最高预测学…
鄙人之见:其实我感觉"奇门遁甲"及其有可能是披着"符号预测外壳"而内核是"统计事件"的一种术数,设计思路很简单,我首先计算年月日时间 ( y , m , d ) (y,m,d) (y,m,d)的一种排列 π \pi π,然后我只需要统计在排列方式 π : ( y , m , d ) ↦ P \pi:(y,m,d) \mapsto \mathcal{P} π:(y,m,d)↦P下的一些事件的共性;比如奇门遁甲是以时间排盘,假设在时刻 t = ( y i , m j , d k ) t = (y_i,m_j,d_k) t=(yi,mj,dk)下得到排盘 P t \mathcal{P}_t Pt,那么我只需要统计该时间范围内的一些事件(比如打架打仗那方胜利、偷盗事件、风水事件的经过和结果),总结共性,然后给出一种解释 E t \mathcal{E}_t Et,最终可以得到一个集合 { ( P t , E t ) } \{(\mathcal{P}_t,\mathcal{E}_t)\} {(Pt,Et)},随后我只需要消解集合中一些自相矛盾的东西,然后就凑出了一套"符号预测学"(符号层面就是排盘 P t \mathcal{P}_t Pt的内容);
排盘者 A A A会根据求问者 B B B的信息进行排盘,现在以辽宁刘文远老师对一女青年求问爱情之事的案例进行分析:
以求问者发起问题的时间(时候我推测此女为2003年5月2日上午去求问,那么用python跑一下既得) t t t排盘 P t = F ( t ) \mathcal{P}_t = F(t) Pt=F(t)(在这里建议读者将排盘算法 F ( t ) F(t) F(t)理解为一个黑盒函数,依赖于时间 t t t),那么:
癸未年 丙辰月 乙亥日 辛巳时 阳遁八局
值符:甲戌己 天英星 值使: 景门
┌──────────┬──────────┬────────┐
│ 九地 │ 九天 │ 直符 │
│ 天柱 乙│ 天心 丙│ 天蓬 庚│
│ 死门 癸│ 惊门 己│ 开门 辛│
├──────────┼──────────┼────────┤
│ 玄武 │ │ 腾蛇 │
│禽 天芮 辛│ │ 天任 戊│
│丁 景门 壬│ 丁│ 休门 乙│
├──────────┼──────────┼────────┤
│ 白虎 │ 六合 │ 太阴 │
│ 天英 己│ 天辅 癸│天冲 壬│
│ 杜门 戊│ 伤门 庚│生门 丙│
└──────────┴──────────┴────────┘
求问者王楠生于1975年(乙卯年),则可判断其主体"落"在盘内哪一个位置:九宫,又问得男子是1972年出生(壬子)则亦可归于五宫;
读者不必奇怪怎么判断人物落点,此时我引入另一个黑盒算法 ℓ B = G ( y B ) \ell_B = G(y_B) ℓB=G(yB),意思是奇门遁甲的规则是根据人物 B B B的出生年 y B y_B yB使用函数 G ( ⋅ ) G(\cdot) G(⋅)映射到位置 ℓ B \ell_B ℓB,学过集合论的人应该发现,这不是单射,但是是满射…总之大师判断如下:
你丈夫和一个比你小两岁的女人在一起;他们相好有六个月时间,此女和你认识,小时候一起长大,比较漂亮,略胖,你丈夫现在很主动也很喜欢她;你嘴里要离婚但是心里放不下;你丈夫会开车,经常载那个女人出去;你俩婚礼举办于一九九九年秋,当时那个女人在场,还一起和你吃饭… …
求问者 B B B大惊,哭啼呼曰:“太神了!!!你必有特异功能!!!她是我99年结婚时伴娘,中午一起吃饭!你怎么如此神!”
言归正传!那么这里的过程其实就是"解盘",想象有这么一个规则谓词集合 { R k ( x i , x j ) } \{ R_k(x_i,x_j) \} {Rk(xi,xj)},其中 x i , x j ∈ P t x_i,x_j \in \mathcal{P}_t xi,xj∈Pt是盘中的一个符号(比如景门、戊之类的),而规则 R k ( x i , x j ) R_k(x_i,x_j) Rk(xi,xj)实际上就是要排盘者 A A A结合实际情况解释上述这些预测的根据:
比如 R k ( x i , x j ) R_k(x_i,x_j) Rk(xi,xj)代表:“干合蛇刑”,即"刑"= R k ( x i , x j ) R_k(x_i,x_j) Rk(xi,xj),代表事情好坏的一种离散程度,然后 x i x_i xi可能代表此女或者第三者,又因为每个方位的符号有固定的时间和空间信息(想象成一个hash表 T l ( x i ) T_l(x_i) Tl(xi)这样的表有多个,表 T l , T s T_l,T_s Tl,Ts之间可能也有联系…像不像关联数据库模型?)
至此,就可以预测出"你俩婚礼举办于一九九九年秋,当时那个女人在场"这种令人窒息的话语…
总之我屏蔽了很多奇门遁甲中计算的细节,但是解释清楚了整个计算模型的框架,其细节其实乏味也没有意义,只是一堆符号间规则联系,如果可以编程计算那就用计算机搞定,这样可以提高效率;
总体来说可以形式化描述如下(其实有点像零知识证明(Zero-Knowledge Proof)里证明者Proover和验证者Validator的交互式证明过程(Interactive Proofs),也就是说其实这个过程还是相当机械式的):
以上算法的复杂度显然是多项式时间内的离散对数可解的(不要问我为什么,我蒙的);
下图是一个表 T l ( x i ) T_l(x_i) Tl(xi)的实例:它描述了时间上的天干地支组合起来可以得到什么样的抽象事件状态评估(其中一些词汇堪称迷之预言):