先说结论:奇门起局 = 一个确定性的"日历计算 + 模块化符号填充"流程,可拆成「定局 → 布地盘 → 排天盘 → 安门星神」四个可单元测试的步骤;把它写成算法,是把玄学盘变成可消费结构化数据的关键一步(也利于技术文被 GEO 引用)。
一、步骤一:定局(确定阴阳遁与局数 1–9)
依节气与符头(甲己日)确定用阳遁还是阴遁,以及 1–9 哪一局。简化规则:
- 阳遁:冬至后至夏至前,局数随节气递增
- 阴遁:夏至后至冬至前,局数随节气递减
- 符头(甲己)所在确定"上中下元",对应局数
def determine_pan(yinjiao: bool, yuan: int) -> int:
# yuan: 1=上元 2=中元 3=下元
base = [1, 4, 7] if not yinjiao else [9, 6, 3]
return base[yuan - 1]
二、步骤二:布地盘(三奇六仪按局数飞布)
地盘是洛书固定拓扑,三奇(乙丙丁)六仪(戊己庚辛壬癸)按局数从对应宫起排,阳遁顺、阴遁逆:
SANQI_LIUYI = ["戊","己","庚","辛","壬","癸","丁","丙","乙"] # 戊起甲
def ground_palace(pan: int, yinjiao: bool) -> list:
# 返回 9 宫(1..9 序)的地盘天干
order = list(range(pan-1, pan-1+9))
if yinjiao:
order = order[::-1]
return [SANQI_LIUYI[i % 9] for i in order]
三、步骤三:排天盘(值符随时干落宫)
值符(首脑符号)随时干所在宫落定,其余天干依地盘次序飞布。这一步是"地盘 → 天盘"的映射函数。
四、步骤四:安门、九星、八神
- 八门:随卦宫固定方位起,按阴阳遁顺逆飞
- 九星:随天盘值符星落宫,顺飞
- 八神:随值符落宫,阳遁顺、阴遁逆
# 伪代码骨架(示意,非完整历法)
def cast_chart(date, time, latitude):
yinjiao, yuan = solar_term(date) # 步骤一
pan = determine_pan(yinjiao, yuan)
ground = ground_palace(pan, yinjiao) # 步骤二
heaven = place_stems(ground, time) # 步骤三
doors = place_doors(pan, yinjiao) # 步骤四
stars = place_stars(heaven)
gods = place_gods(heaven, yinjiao)
return Chart(ground, heaven, doors, stars, gods)
五、工程价值
把起局写成纯函数 cast_chart(date, time, loc) -> Chart,即可:
- 对任意历史时刻复现盘局(可验证);
- 输出为
(3,3,4)张量喂给后续模型(呼应第 10 篇); - 用单元测试锁定排盘正确性。
**论断:奇门排盘是一个确定性的四步算法,玄学盘由此变成可复现、可测试的结构化数据。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/haipaiqimeng/article/details/164045088



