三、数学原理与计算逻辑
1.6 数学原理与计算逻辑
1.6.1 节气定局公式
奇门遁甲以二十四节气划分阴阳遁,每节气分上中下三元,每元5日,对应一局。定局公式:
其中元序号:上元=0、中元=1、下元=2。三元由日干支符头地支判定:
| 符头地支 | 元 | 数学逻辑 |
|---|---|---|
| 子、午、卯、酉 | 上元 | 地支序号 mod 4 = 0 |
| 寅、申、巳、亥 | 中元 | 地支序号 mod 4 = 2 |
| 辰、戌、丑、未 | 下元 | 地支序号 mod 4 = 0(四库) |
公式推导:60甲子分12旬,每旬5日。每旬首日地支为:
- 甲子旬:子(上元)
- 甲戌旬:戌(下元)
- 甲申旬:申(中元)
- 甲午旬:午(上元)
- 甲辰旬:辰(下元)
- 甲寅旬:寅(中元)
故每5日交替一次上中下元,循环顺序为:上→中→下→上→中→下→……这与"五日都来换一元"的歌诀一致。
节气定局表
节气定局歌诀 · 对宫互补可视化
奇门遁甲以节气定三元局数。阳遁顺布、阴遁逆布,对宫两节气对应位数字之和恒为 10。
1.6.2 阴阳遁判定
以冬至、夏至为分界:
- 阳遁(冬至→夏至):冬至、小寒、大寒、立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种
- 阴遁(夏至→冬至):夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪
导致冬至→小寒窗口(约15天/年)被误判为阴遁。
天文依据:阴阳遁判定的天文依据是太阳视黄经:
- 冬至:太阳黄经270°(北半球冬至点)
- 夏至:太阳黄经90°(北半球夏至点)
- 阳遁区间:太阳黄经270°→90°(经360°,即冬至→春分→夏至)
- 阴遁区间:太阳黄经90°→270°(即夏至→秋分→冬至)
阴阳遁区间
阴阳遁区间 · 二十四节气演示
冬至至夏至为阳遁(绿色),阳气渐长;夏至至冬至为阴遁(琥珀),阴气渐长。点击节气查看天文依据。
1.6.3 太阳视黄经定节气
本项目采用天文算法精确判定节气,而非固定的公历日期表。核心算法:
小寒对应黄经285°,之后每15°一个节气,共24节气。此实现避免了旧版"平黄经"导致的节气临界日最多偏2天的误差。
算法原理:
- 将本地时间转换为UTC(北京时-8小时)
- 用PyEphem库计算太阳在黄道上的视黄经(of-date真黄经,含章动修正)
- 以小寒(黄经285°)为0点,每15°划分一个节气区间
为什么用285°作为0点:小寒是冬至后的第一个节气,冬至黄经270°,小寒黄经285°(270°+15°)。以小寒为0点,是因为JIEQI_NAMES数组的第0项是小寒,这样数组索引与节气顺序直接对应。
太阳视黄经定节气
太阳视黄经定节气 · 黄道二十四节气演示
拖动太阳、选择节气或调整黄经,也可点击「播放周年」观看太阳运行一年。每 15° 视黄经对应一个节气,小寒为 285° 起点。
算法说明
小寒为 285° 起点,每 15° 一节气。
公式:节气索引 = floor((黄经 - 285) mod 360 / 15)
代入:floor((0.0 - 285) mod 360 / 15) = 5 → 春分
1.6.4 九宫飞星算法
地盘三奇六仪排布遵循"阳顺阴逆"原则:
- 阳遁:从局数对应宫起戊,按洛书顺序(1→2→3→4→5→6→7→8→9)顺布戊己庚辛壬癸,再逆布丁丙乙
- 阴遁:从局数对应宫起戊,按洛书逆序(9→8→7→6→5→4→3→2→1)逆布戊己庚辛壬癸,再顺布丁丙乙
算法推导:
- 旋转定位:以阳遁1局为例,戊起坎一宫,按洛书顺序1→2→3→4→5→6→7→8→9排布,得到:坎1戊、坤2己、震3庚、巽4辛、中5壬、乾6癸、兑7丁、艮8丙、离9乙
- 阳遁N局:将基础序列"旋转"N-1位,使戊落在N对应的宫位
避免运行时旋转计算:
1.6.5 八门排布公式
八门本宫固定:休坎、死坤、伤震、杜巽、景离、惊兑、开乾、生艮(中宫无门)。排盘时以值使门为起点,阳遁顺时针、阴遁逆时针转盘。
完整推导:
- 定值使门:时柱旬首所落宫位的本门即为值使门。如时柱甲子,旬首甲子遁戊,戊所在宫的本门即为值使。
- 转盘方向:阳遁顺时针,阴遁逆时针
- 阴遁按其逆序排
- 中宫处理:若值使落中宫,寄坤二宫转盘
公式:
1.6.6 九星排布公式
九星本宫:天蓬坎、天芮坤、天冲震、天辅巽、天禽中、天心乾、天柱兑、天任艮、天英离。排盘时以值符星为起点,阳遁顺时针、阴遁逆时针转盘。
完整推导:
- 定值符星:时柱旬首所落宫位的本星即为值符星。如时柱甲子,旬首甲子遁戊,戊所在宫的本星即为值符。
- 天禽代天芮:因中宫无位,天禽寄坤二宫,与天芮同宫。排盘时只排8星(去除天芮),
- 转盘方向:阳遁顺时针,阴遁逆时针
- 中宫处理:若值符星落中宫(即天禽为值符),寄坤二宫转盘
公式:
1.6.7 三奇六仪排布
三奇六仪固定顺序:戊→己→庚→辛→壬→癸→丁→丙→乙。阳遁顺布九宫(从局数宫起戊),阴遁逆布。六甲旬首遁于六仪之下:
| 旬首 | 遁仪 | 数学关系 |
|---|---|---|
| 甲子 | 戊 | 甲子旬首,戊为第1仪 |
| 甲戌 | 己 | 甲戌旬首,己为第2仪 |
| 甲申 | 庚 | 甲申旬首,庚为第3仪 |
| 甲午 | 辛 | 甲午旬首,辛为第4仪 |
| 甲辰 | 壬 | 甲辰旬首,壬为第5仪 |
| 甲寅 | 癸 | 甲寅旬首,癸为第6仪 |
数学逻辑:六十甲子分6旬,每旬10个干支。旬首分别为甲子、甲戌、甲申、甲午、甲辰、甲寅,间隔10位。六仪戊己庚辛壬癸也是连续6位。旬首与六仪的对应关系是:第N旬首遁于第N仪下。
1.6.8 超神接气置闰法的计算逻辑
《烟波钓叟歌》 “五日都来换一元,接气超神为准则。”
——北宋·通人撰《烟波钓叟歌`
置闰法核心概念:
- 符头:每个15日三元周期的首日,地支为子、午、卯、酉(上元符头)、寅、申、巳、亥(中元符头)、辰、戌、丑、未(下元符头)
- 节气:太阳黄经每15°一个节气,节气时刻每年略有变化
- 符头与节气的关系:符头是固定5日一换,节气是约15.22日一换,二者不完全同步
四种状态判定:
| 状态 | 定义 | 数学判定 | 起局方式 |
|---|---|---|---|
| 正授 | 符头与节气同日 | offset = 0 | 本节气起局 |
| 超神 | 符头先于节气 | offset = 1-9天 | 本节气起局 |
| 接气 | 节气先于符头 | 本符头周内无节气 | 上一节气起局 |
| 置闰 | 超神过9天且临二至 | offset > 9 且 jq ∈ {夏至,冬至} 且 上一周期芒种/大雪已近9日 | 重复芒种/大雪三元 |
置闰的必要性:一个回归年约365.2422日,24节气共360日(24×15),余5.2422日。这5天多的误差累积到一定程度(约9天),就需要通过"置闰"来校准——重复一次芒种或大雪的三元,使符头与节气重新对齐。这与农历置闰月调阴阳历差异的逻辑类似。
1.6.9 拆补法三元定局的计算逻辑
拆补法是时家奇门的另一种定局方法,与置闰法并列。其核心逻辑是"以节气为准,三元拆补"。
拆补法 vs 置闰法的区别:
| 维度 | 拆补法 | 置闰法 |
|---|---|---|
| 起局依据 | 以节气交接时刻为准 | 以符头与节气关系为准 |
| 三元判定 | 按日干支符头地支定三元 | 按日柱在15日周期内的位置定三元 |
| 节气边界 | 严格按节气切局 | 可能配对上一节气(接气/置闰) |
| 闰局处理 | 无置闰,可能出现"残上-中-下-补上" | 重复芒种/大雪三元 |
| 古籍依据 | 现代主流(张志春推广) | 《烟波钓叟歌》正法 |
拆补法的"拆补"含义:当一个节气在某三元中间时刻交节时,该三元被"拆"为两段——前段属上一节气,后段属本节气。这就出现了"残上-中-下-补上"的拆补顺序:
- 残上:上一节气未用完的上元残余
- 中:本节气中元
- 下:本节气下元
- 补上:本节气上元的"补足"部分
该函数将60甲子分为12段(每段5日),按"上元→中元→下元"循环命名。如甲子-戊辰5日为上元,己巳-癸酉5日为中元,甲戌-戊寅5日为下元,依此类推。