# 占筮规则与体系

# 《梅花易数》算法规则条目集·技术规格书

# 《梅花易数》算法规则条目集（程序实现技术规格书）

> **文档性质**：软件工程算法规格说明书（Software Engineering Specification）  
> **面向目标**：供计算机程序、自动化排卦引擎与易学专家系统开发使用。将古籍中的占验话语彻底形式化为“输入参数 -> 计算逻辑 -> 边界条件 -> 输出卦象与断语模型”的确定性工程接口。  
> **比对底本**：  
> - **底本一（F1）**：清代坊刻三卷本系统（本地路径：`/home/lewin/@Sync/Casket/obsidian/lewin/raw/古籍/术数/梅花易数.md`，殆知阁古代文献版，题“清黄宗羲撰序”）。  
> - **底本二（F2）**：清代故宫珍藏秣陵德聚堂五卷本系统（本地路径：`/home/lewin/@Sync/Casket/obsidian/lewin/raw/web/梅花易数-邵康节.md`，周浩良整理、九州出版社版，署“秣陵德聚堂谨订”）。  
> **标注规范**：凡两版本在字句、算法、篇章结构上存异处，均显式加注 `[版本差异]`，并在条目末尾给出明确的 `[采信建议与工程实现决策]`。

---

## 模块零：核心常数与标准数据结构定义（参数写死）

在梅花易数算法体系中，所有逻辑均基于先天八卦数及六十四卦二进制位结构。程序内部需预先固化以下常量表：

### 0.1 八卦先天数与卦画结构表
- **爻位定义**：自下而上排列，依次为初爻（第1爻/最低爻）、二爻（第2爻）、三爻（第3爻/经卦顶爻）。阳爻记为 `1`，阴爻记为 `0`。
- **数组表示约定**：采用 Python 列表 `[初爻, 二爻, 三爻]`（下标 0 为初爻，下标 2 为三爻）。
- **整型位权定义**：以初爻为最低有效位（LSB, Bit 0），二爻为 Bit 1，三爻为 MSB (Bit 2)。即 $\text{Value} = \text{爻}_1 \times 1 + \text{爻}_2 \times 2 + \text{爻}_3 \times 4$。

| 先天卦数 | 卦名 | 卦象 | 爻象（自下而上） | 爻位数组 `[初, 二, 三]` | 位权值 (Bit 0~2) | 五行所属 | 后天对应方位（用于后天端法） |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **1** | 乾 (Qian) | ☰ | 阳、阳、阳 | `[1, 1, 1]` | 7 (`111b`) | 金 | 西北 (Northwest) |
| **2** | 兑 (Dui) | ☱ | 阳、阳、阴 | `[1, 1, 0]` | 3 (`011b`) | 金 | 正西 (West) |
| **3** | 离 (Li) | ☲ | 阳、阴、阳 | `[1, 0, 1]` | 5 (`101b`) | 火 | 正南 (South) |
| **4** | 震 (Zhen) | ☳ | 阳、阴、阴 | `[1, 0, 0]` | 1 (`001b`) | 木 | 正东 (East) |
| **5** | 巽 (Xun) | ☴ | 阴、阳、阳 | `[0, 1, 1]` | 6 (`110b`) | 木 | 东南 (Southeast) |
| **6** | 坎 (Kan) | ☵ | 阴、阳、阴 | `[0, 1, 0]` | 2 (`010b`) | 水 | 正北 (North) |
| **7** | 艮 (Gen) | ☶ | 阴、阴、阳 | `[0, 0, 1]` | 4 (`100b`) | 土 | 东北 (Northeast) |
| **8** | 坤 (Kun) | ☷ | 阴、阴、阴 | `[0, 0, 0]` | 0 (`000b`) | 土 | 西南 (Southwest) |

### 0.2 十二地支时辰与序数表
| 地支 | 序数 | 对应二十四小时区间 | 五行 | 生肖 |
| :--- | :--- | :--- | :--- | :--- |
| **子** | 1 | 23:00 — 01:00 | 水 | 鼠 |
| **丑** | 2 | 01:00 — 03:00 | 土 | 牛 |
| **寅** | 3 | 03:00 — 05:00 | 木 | 虎 |
| **卯** | 4 | 05:00 — 07:00 | 木 | 兔 |
| **辰** | 5 | 07:00 — 09:00 | 土 | 龙 |
| **巳** | 6 | 09:00 — 11:00 | 火 | 蛇 |
| **午** | 7 | 11:00 — 13:00 | 火 | 马 |
| **未** | 8 | 13:00 — 15:00 | 土 | 羊 |
| **申** | 9 | 15:00 — 17:00 | 金 | 猴 |
| **酉** | 10 | 17:00 — 19:00 | 金 | 鸡 |
| **戌** | 11 | 19:00 — 21:00 | 土 | 犬 |
| **亥** | 12 | 21:00 — 23:00 | 水 | 猪 |

### 0.3 标准模运算定义（写死）
古籍云：“卦以八除，爻以六除。如不满数，止用此数；如过数，则递除之；直除尽，以零数作卦/动爻；如得整除之数，卦取坤八，爻取上六。”
- **八数求卦函数 `mod8_gua(N)`**：
  $$\text{mod8\_gua}(N) = \begin{cases} N & \text{if } 1 \le N \le 8 \\ 8 & \text{if } N > 8 \text{ and } (N \pmod 8 == 0) \\ N \pmod 8 & \text{if } N > 8 \text{ and } (N \pmod 8 \ne 0) \end{cases}$$
- **六数求动爻函数 `mod6_yao(N)`**：
  $$\text{mod6\_yao}(N) = \begin{cases} N & \text{if } 1 \le N \le 6 \\ 6 & \text{if } N > 6 \text{ and } (N \pmod 6 == 0) \\ N \pmod 6 & \text{if } N > 6 \text{ and } (N \pmod 6 \ne 0) \end{cases}$$

---

## 模块一：起卦诸法（完整技术规则与算法）

梅花易数起卦两大门派为：**先天起卦**（先得数，以数起卦）与**后天端法起卦**（先见象，以象起卦）。

### 规则 1.1：年月日时起卦法（先天时间起卦）
- **出处**：F1 卷一《象数易理篇之一·年月日时起例》；F2 卷之一《年月日时起例》。
- **输入参数**：
  - 农历年地支数 $Y \in [1, 12]$（子1至亥12，以正月初一或立春为界）
  - 农历月份 $M \in [1, 12]$（正月1至十二月12）
  - 农历日期 $D \in [1, 30]$（初一1至三十30）
  - 发生时辰地支数 $T \in [1, 12]$（子时1至亥时12）
- **计算算法**：
  1. 上卦数：$Num_{upper} = (Y + M + D)$；上卦经卦 $= \text{mod8\_gua}(Num_{upper})$。
  2. 下卦数：$Num_{lower} = (Y + M + D + T)$；下卦经卦 $= \text{mod8\_gua}(Num_{lower})$。
  3. 动爻数：$Dong = \text{mod6\_yao}(Y + M + D + T)$。
- **特例与边界（农历闰月）**：
  - `[版本差异]`：两底本皆未对闰月作显式注释。
  - `[采信建议与工程实现决策]`：默认支持通例“直接按本月数取（如闰四月作4数）”；在系统配置项中提供高级选项“按节气中气分前后半月归属”。

### 规则 1.2：物数起卦法（见单一可数之物）
- **出处**：F1 卷一《物数占例》；F2 卷之一《物占数》。
- **输入参数**：可数物体总数 $Count$（正整数），时辰地支数 $T \in [1, 12]$。
- **前置限制条件**：群物散乱不可数者不可占；必须为目之所见、确凿之数。
- **计算算法**：
  1. 上卦数：$Num_{upper} = Count$；上卦 $= \text{mod8\_gua}(Count)$。
  2. 下卦数：$Num_{lower} = T$；下卦 $= \text{mod8\_gua}(T)$。
  3. 动爻数：$Dong = \text{mod6\_yao}(Count + T)$。
- **版本校勘**：F1作《物数占例》，F2作《物占数》（附校勘记），算理完全一致。

### 规则 1.3：声音起卦法（闻声起卦）
- **出处**：F1 卷一《声音占例》；F2 卷之一《声音占》。
- **输入参数**：所闻声音次数 $SoundCount$（正整数），时辰地支数 $T \in [1, 12]$。
- **计算算法**：
  1. 上卦数：$Num_{upper} = SoundCount$；上卦 $= \text{mod8\_gua}(SoundCount)$。
  2. 下卦数：$Num_{lower} = T$；下卦 $= \text{mod8\_gua}(T)$。
  3. 动爻数：$Dong = \text{mod6\_yao}(SoundCount + T)$。
- **连续发声规则**：若声音有停顿间隔，则以第一阵声数为上卦，第二阵声数为下卦，总声数加时数取动爻。

### 规则 1.4：文字起卦法（一字至百余字系统）
- **出处**：F1 卷一《字占》《一字至十一字占》；F2 卷之一《字占》《一字占》至《十一字占》。

#### 规则 1.4.1：一字占（楷书偏旁拆分笔画法）
- **输入参数**：单个楷书汉字。草书混沌不可分者不占。
- **计算算法**：
  - 拆分该字为阳部（左/上/外）与阴部（右/下/内）。
  - 左边（阳）笔画数 $P_{left}$，右边（阴）笔画数 $P_{right}$。
  - 上卦 $= \text{mod8\_gua}(P_{left})$。
  - 下卦 $= \text{mod8\_gua}(P_{right})$。
  - 动爻 $= \text{mod6\_yao}(P_{left} + P_{right})$（全字总笔画数求爻，**严禁加时数**）。
- **古籍偏旁判定准则**：
  - 左右结构：以“彳”、“丿”等为左部阳画；以“一”、“乙”、“丶”等为右部阴画。
  - 上下结构：上部为阳取上卦，下部为阴取下卦，全画总数求动爻。
  - 独体字/不可拆分字：以总笔画平分为上卦（少一画）、下卦（多一画），总画求爻。

#### 规则 1.4.2：二字占（两仪平分法）
- **计算算法**：
  - 第1字笔画数 $W_1$；第2字笔画数 $W_2$。
  - 上卦 $= \text{mod8\_gua}(W_1)$。
  - 下卦 $= \text{mod8\_gua}(W_2)$。
  - 动爻 $= \text{mod6\_yao}(W_1 + W_2)$（**严禁加时数**）。

#### 规则 1.4.3：三字占（三才拆分法）
- **计算算法**：
  - 第1字笔画数 $W_1$ 取上卦（天）：上卦 $= \text{mod8\_gua}(W_1)$。
  - 第2、3字笔画总和 $(W_2 + W_3)$ 取下卦（地与人）：下卦 $= \text{mod8\_gua}(W_2 + W_3)$。
  - 动爻 $= \text{mod6\_yao}(W_1 + W_2 + W_3)$（**严禁加时数**）。

#### 规则 1.4.4：四字至十字占（中古四声平仄调声法）
- **核心原则**：“四字以上，不必数画数，只以平仄声音调之。平声为一数，上声为二数，去声为三数，入声为四数。”
- **声调常量表**：平声（阴平/阳平） $= 1$；上声 $= 2$；去声 $= 3$；入声 $= 4$。
- **拆分逻辑**：
  - **偶数个字（4, 6, 8, 10字）**：平分前后两半。
    - 前半部字调数和 $Tone_{first}$，后半部字调数和 $Tone_{second}$。
    - 上卦 $= \text{mod8\_gua}(Tone_{first})$。
    - 下卦 $= \text{mod8\_gua}(Tone_{second})$。
    - 动爻 $= \text{mod6\_yao}(Tone_{first} + Tone_{second})$（**严禁加时数**）。
  - **奇数个字（5, 7, 9字）**：天轻清（少一字在上），地重浊（多一字在下）。
    - 设字数为 $N$。前部字数 $= (N - 1) / 2$；后部字数 $= (N + 1) / 2$。
    - 前部字调数和 $Tone_{first}$，后部字调数和 $Tone_{second}$。
    - 上卦 $= \text{mod8\_gua}(Tone_{first})$。
    - 下卦 $= \text{mod8\_gua}(Tone_{second})$。
    - 动爻 $= \text{mod6\_yao}(Tone_{first} + Tone_{second})$（**严禁加时数**）。
- `[版本差异与采信建议]`：
  - 古本使用中古平水韵四声（含入声）。
  - 现代普通话无入声，程序应支持：① 中原音韵/平水韵古典声调模式；② 现代拼音四声映射模式（一声平1、二声平1、三声上2、四声去3）；③ 现代常见的汉字笔画拆分降级模式。

#### 规则 1.4.5：十一字以上至百余字占（纯字数法）
- **核心原则**：“十一字以上，又不用平仄声音调之，止用字数。”
- **计算算法**：
  - 设总字数为 $N$（$N \ge 11$）。
  - 若 $N$ 为偶数：上卦 $= \text{mod8\_gua}(N / 2)$；下卦 $= \text{mod8\_gua}(N / 2)$；动爻 $= \text{mod6\_yao}(N)$。
  - 若 $N$ 为奇数：上卦 $= \text{mod8\_gua}((N - 1) / 2)$；下卦 $= \text{mod8\_gua}((N + 1) / 2)$；动爻 $= \text{mod6\_yao}(N)$。
  - 纯用字数，**严禁加时数**。

### 规则 1.5：丈尺与尺寸占法
- **出处**：F1 卷一《丈尺占》《尺寸占》；F2 卷之一《丈尺之物》《尺寸物占》。
- **规则 1.5.1：丈尺之物（大物）**：
  - 丈数取上卦：上卦 $= \text{mod8\_gua}(丈数)$。
  - 尺数取下卦：下卦 $= \text{mod8\_gua}(尺数)$。
  - 动爻：$Dong = \text{mod6\_yao}(丈数 + 尺数)$。
  - **写死约束**：“寸数不用，不加时数”。
- **规则 1.5.2：尺寸之物（小物）**：
  - 尺数取上卦：上卦 $= \text{mod8\_gua}(尺数)$。
  - 寸数取下卦：下卦 $= \text{mod8\_gua}(寸数)$。
  - 动爻：$Dong = \text{mod6\_yao}(尺数 + 寸数 + 当时时支数)$。
  - **写死约束**：“分数不用，必须加时数取爻”。（因数小，加时以穷其变）。

### 规则 1.6：为人占与自己占（起卦触发源规则）
- **出处**：F1 卷一《为人占》《自己占》；F2 卷之一《为人占》《自己占》。
- **输入特征提取规则**：
  1. 听语声：一句者依字数起卦；两句者前句为上卦、后句为下卦；语多者取初听一句或末后一句。
  2. 观人品（万物类象）：老人为乾(1)、少女为兑(2)、中女为离(3)、长男为震(4)、长女为巽(5)、中男为坎(6)、少男为艮(7)、老母为坤(8)。以人品为上卦，加来方为下卦，加时数取动爻。
  3. 取诸其身：头动为乾(1)、足动为震(4)、目动为离(3)、耳动为坎(6)、手指为艮(7)、口齿为兑(2)。
  4. 取诸其物：圆形金玉为乾(1)、方形土瓦为坤(8)、水族为坎(6)、火器为离(3)。
  5. 服色取象：青为震/巽(4/5)、赤为离(3)、白为乾/兑(1/2)、黑为坎(6)、黄为坤/艮(8/7)。
- **自己占**：以年月日时、闻声、所触外物起卦，与为人占同，但必须加时数。

### 规则 1.7：后天端法起卦（物卦起例）
- **出处**：F1 卷一《物卦起例（端法后天起卦）》；F2 卷之一《物卦起例》。
- **核心定义**：“以物为上卦，方位为下卦，合物卦之数与方卦之数加时数以取动爻。”
- **输入参数**：
  - 观察到的实体物象/人象（映射为八卦，取其先天数 $Gua_{obj} \in [1, 8]$）
  - 物或人所在之后天方位（映射为该方位对应八卦之先天数 $Gua_{dir} \in [1, 8]$）：
    - 离正南=3，坎正北=6，震正东=4，兑正西=2，巽东南=5，乾西北=1，艮东北=7，坤西南=8。
  - 观测时辰地支数 $T \in [1, 12]$。
- **计算算法**：
  1. 上卦 $= Gua_{obj}$。
  2. 下卦 $= Gua_{dir}$。
  3. 动爻 $= \text{mod6\_yao}(Gua_{obj} + Gua_{dir} + T)$。

### 规则 1.8：起卦加数消除冲突法（并发/同时间多人去重算法）
- **出处**：F1 卷二《起卦加数例》；F2 卷之二《起卦加数例》。
- **业务场景**：同一时间（同年月日时）有多人求占同一事，若直接按时间起卦，则卦象完全一致，吉凶无从分辨。
- **算法模型**：
  - 引入求占者之特定特征标识（古法用求占者姓氏笔画数 $K$；现代程序可传入用户ID或姓名笔画数）。
  - 上卦数：$Num_{upper} = (Y + M + D + K)$；上卦 $= \text{mod8\_gua}(Num_{upper})$。
  - 下卦数：$Num_{lower} = (Y + M + D + K + T)$；下卦 $= \text{mod8\_gua}(Num_{lower})$。
  - 动爻数：$Dong = \text{mod6\_yao}(Y + M + D + K + T)$。
- **经典案例验证**：
  - 寅年(3)十二月(12)初一日(1)午时(7)：基数 $3+12+1=16$。
  - 王姓（4画）：上卦 $(16+4)=20 \pmod 8 = 4$（震）；下卦 $(20+7)=27 \pmod 8 = 3$（离）；动爻 $27 \pmod 6 = 3$。得雷火丰变震。
  - 田姓（6画）：上卦 $(16+6)=22 \pmod 8 = 6$（坎）；下卦 $(22+7)=29 \pmod 8 = 5$（巽）；动爻 $29 \pmod 6 = 5$。得水风井变升。
  - 韩姓（21画）：上卦 $(16+21)=37 \pmod 8 = 5$（巽）；下卦 $(37+7)=44 \pmod 8 = 4$（震）；动爻 $44 \pmod 6 = 2$。得风雷益变中孚。

---

## 模块二：动爻求法与判定规则

动爻是决定重卦吉凶运动、体用划分及变卦演化的唯一动力核心。

### 规则 2.1：一卦一爻动原则（写死）
梅花易数算法体系**严格限制一卦仅有一爻动**。严禁出现大衍筮法或京房六爻中的多爻动或静卦无动爻。无论输入数字多大，经过模6运算后，必然锁定在第 1 至第 6 爻中的唯一爻位。

### 规则 2.2：动爻求法分类归纳表
| 起卦类型 | 动爻计算公式 | 是否加时数 | 边界特例（整除时） |
| :--- | :--- | :--- | :--- |
| **年月日时起卦** | $(年支 + 月 + 日 + 时支) \pmod 6$ | 包含时数 | 余0取第6爻（上爻） |
| **物数占** | $(物数 + 时支) \pmod 6$ | 必须加时 | 余0取第6爻（上爻） |
| **声音占** | $(声数 + 时支) \pmod 6$ | 必须加时 | 余0取第6爻（上爻） |
| **一字至十字占** | (字画总数 或 调声总数) $\pmod 6$ | **严禁加时** | 余0取第6爻（上爻） |
| **十一字以上占** | 总字数 $N \pmod 6$ | **严禁加时** | 余0取第6爻（上爻） |
| **丈尺占** | $(丈数 + 尺数) \pmod 6$ | **严禁加时** | 余0取第6爻（上爻） |
| **尺寸占** | $(尺数 + 寸数 + 时支) \pmod 6$ | 必须加时 | 余0取第6爻（上爻） |
| **后天端法（物卦）** | $(物卦数 + 方位卦数 + 时支) \pmod 6$ | 必须加时 | 余0取第6爻（上爻） |
| **同时间加数占** | $(年+月+日+姓画+时支) \pmod 6$ | 包含时数 | 余0取第6爻（上爻） |

### 规则 2.3：动爻状态翻转算法
- 若动爻原为阳爻（1 / 九），翻转为阴爻（0 / 六）；
- 若动爻原为阴爻（0 / 六），翻转为阳爻（1 / 九）。

---

## 模块三：体用判定、互卦与变卦推演算法

### 规则 3.1：体用判定规则（动静分体用）
- **出处**：F1 卷二《体用总诀》；F2 卷之二《体用总诀》《断占总诀》。
- **定义**：
  - 重卦六爻分为下卦（内卦，爻1~3）与上卦（外卦，爻4~6）。
  - **判定算法**：
    $$\begin{cases} \text{动爻 } Dong \in \{1, 2, 3\} & \implies \text{下卦为【用卦】（动），上卦为【体卦】（静）} \\ \text{动爻 } Dong \in \{4, 5, 6\} & \implies \text{上卦为【用卦】（动），下卦为【体卦】（静）} \end{cases}$$
- **象征意义**：体卦为主体（占者、己方、事物本体）；用卦为客体（所占之事、应事之人、外部吉凶动因）。

### 规则 3.2：互卦生成算法（取中爻交错）
- **出处**：F1 卷一《互卦起例》；F2 卷之一《互卦止用八卦不必取六十四卦名》。
- **算法逻辑**：
  - 设本卦六爻自初爻至上爻分别为：$L_1, L_2, L_3, L_4, L_5, L_6$。
  - 去除初爻 $L_1$ 与上爻 $L_6$，仅保留中间四爻 $L_2, L_3, L_4, L_5$。
  - **下互卦（内互）**：取第 2、3、4 爻组成新的三爻经卦，爻位为 $[L_2, L_3, L_4]$。
  - **上互卦（外互）**：取第 3、4、5 爻组成新的三爻经卦，爻位为 $[L_3, L_4, L_5]$。
  - 组合而成的重卦即为“互卦”（上卦为上互，下卦为下互）。
- **体互与用互之权重划分**（极关键）：
  - 若体卦在上卦 $\implies$ 上互为**【体互】**（与体同位，权重高），下互为**【用互】**。
  - 若体卦在下卦 $\implies$ 下互为**【体互】**（与体同位，权重高），上互为**【用互】**。
  - 占断时体互关系最紧，用互次之（如观梅占恒卦，上互兑金克震木体卦，直接断少女折花，而不取下互乾金老人）。

### 规则 3.3：特殊边界：“乾坤无互，互其变卦”
- **出处**：F1 卷一；F2 卷之一。
- **边界成因**：
  - 当本卦为纯乾（乾为天，111111）时，其中爻 2,3,4 与 3,4,5 仍为 111，互卦仍为纯乾；
  - 当本卦为纯坤（坤为地，000000）时，其中爻 2,3,4 与 3,4,5 仍为 000，互卦仍为纯坤。无法形成阴阳消长信息。
- **算法分支规则**：
  ```python
  if 本卦 is 乾为天 or 本卦 is 坤为地:
      # 触发 "乾坤无互，互其变卦" 特殊规则
      下互卦 = 变卦之 [爻2, 爻3, 爻4]
      上互卦 = 变卦之 [爻3, 爻4, 爻5]
  else:
      # 常规互卦规则
      下互卦 = 本卦之 [爻2, 爻3, 爻4]
      上互卦 = 本卦之 [爻3, 爻4, 爻5]
  ```
- `[采信建议]`：此规则是解决乾坤纯卦信息冻结的古法精髓，程序必须实现该分支。

### 规则 3.4：变卦生成算法
- **算法逻辑**：
  1. 体卦所在的三爻经卦**完全保持不变**。
  2. 用卦所在的三爻经卦中，将动爻对应的爻位进行二进制翻转（$0 \to 1, 1 \to 0$），生成新的经卦。
  3. 将新经卦替换原用卦位置，与不变的体卦重新组合成六爻重卦，即为**【变卦】**。
- **时间演化三态模型**：
  - **用卦**：主事之发端，即刻之应；
  - **互卦**：主事之中途，过程演变；
  - **变卦**：主事之末后，最终结局。

---

## 模块四：五行生克与四季旺相休囚死判定

### 规则 4.1：五行生克吉凶基础矩阵
设体卦五行为 $E_{ti}$，对应各应卦（用卦、体互、用互、变卦）五行为 $E_{other}$：
1. **用生体**（$E_{other}$ 生 $E_{ti}$）：**大吉**。主贵人相助，获益匪浅，求谋顺遂。
2. **体用比和**（$E_{other} == E_{ti}$）：**吉**。主同道相扶，百事亨通，主客融洽。
3. **体克用**（$E_{ti}$ 克 $E_{other}$）：**小吉/次吉**。事虽可成，但劳心费力，多所克制。
4. **体生用**（$E_{ti}$ 生 $E_{other}$）：**不吉/泄气**。主损耗盗泄，虚惊劳累，防破耗。
5. **用克体**（$E_{other}$ 克 $E_{ti}$）：**大凶**。主灾咎病祸，官非破败，若克体卦旺则立见危亡。

### 规则 4.2：四季与五行旺相休囚死完全状态矩阵（写死）
判定时令以月令（节气月支）为主：
- 春季（寅、卯月）；
- 夏季（巳、午月）；
- 秋季（申、酉月）；
- 冬季（亥、子月）；
- 四季末月（辰、戌、丑、未月）。

| 时令（月支） | 旺（得令当权） | 相（旺者所生） | 休（生旺者退休） | 囚（克旺者被囚） | 死（旺者所克受刑） |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **春季（寅卯）** | **木** (震/巽) | **火** (离) | **水** (坎) | **金** (乾/兑) | **土** (坤/艮) |
| **夏季（巳午）** | **火** (离) | **土** (坤/艮) | **木** (震/巽) | **水** (坎) | **金** (乾/兑) |
| **秋季（申酉）** | **金** (乾/兑) | **水** (坎) | **土** (坤/艮) | **火** (离) | **木** (震/巽) |
| **冬季（亥子）** | **水** (坎) | **木** (震/巽) | **金** (乾/兑) | **土** (坤/艮) | **火** (离) |
| **四季月（辰戌丑未）**| **土** (坤/艮) | **金** (乾/兑) | **火** (离) | **木** (震/巽) | **水** (坎) |

### 规则 4.3：体用乘旺消长评估权重算法
- **体卦乘旺衰权重判定**：
  - 体卦得【旺】、【相】之气：本体强固，纵有克体之卦，亦受害甚微，化险为夷。
  - 体卦处【死】、【囚】之气：本体虚脱脆弱，若遇用卦或变卦克体，必主重厄、大病、破亡。
- **克体卦旺衰判定**：
  - 克体之卦乘【旺】、【相】：凶暴势大，其祸立应。
  - 克体之卦处【休】、【囚】、【死】：虽克而无力，虚惊一场。
- **卦党众寡法则**：
  - 统计全卦（主卦、互卦、变卦共四个经卦：体、用、上互、下互、变）：
    - 生体/比和之卦党多 $\implies$ 终吉；
    - 克体/泄体之卦党多 $\implies$ 终凶。

---

## 模块五：断应期法则（克期数学模型）

- **出处**：F1 卷三《占卜克应之诀》；F2 卷之三《占卜克应之诀》。
- 克期（确定吉凶应验的时间截点）是梅花易数中最具技术性的部分。分为两大模型：

### 规则 5.1：数理推应期模型（先天动静法）
- **核心全卦数计算**：
  $$Sum_{all} = \text{体卦先天数} + \text{用卦先天数} + \text{上互先天数} + \text{下互先天数} + \text{变卦用位先天数}$$
  （注：部分古例亦取成卦之总数，如主卦上下数或年月日时数）。
- **占者动静状态折算系数**：
  - **行（走动中、在途）**：事应速。
    $$\text{期数 } TimeCount = \lfloor Sum_{all} / 2 \rfloor \text{ 或 } Sum_{all} / 2$$
  - **坐（静坐中、安处）**：事应迟。
    $$\text{期数 } TimeCount = Sum_{all} \times 2$$
  - **立（站立不移）**：半迟半速。
    $$\text{期数 } TimeCount = Sum_{all}$$
  - **卧（睡眠、卧床）**：应最迟，取三倍或更久。

### 规则 5.2：事端长短决定时间单位
根据被占事物的物理与社会生命周期，将 $\text{期数 } TimeCount$ 映射至时间颗粒度：
1. **旦夕暴发之事（花卉、饮食、寻常争斗、鸟兽叫鸣）**：
   - 时间单位为：**时辰** 或 **日**。
2. **近事/常事（寻人、买卖、婚姻订聘、谋差）**：
   - 时间单位为：**日** 或 **月**。
3. **久远之事（营建屋宅、造葬坟墓、立业兴替）**：
   - 时间单位为：**月** 或 **年**。

### 规则 5.3：时令卦气生克定日辰模型（后天干支法）
当需要锁定具体天干地支日期时，采用此规则：
- **吉事生体之期**：
  - 寻找全卦中生扶体卦的五行。
  - 应期必在该五行**乘旺之日辰或月令**（例如：金为体，土来生之，应在辰、戌、丑、未土日，或戊己日；若金为体见金比和，应在申、酉金日，或庚辛日）。
- **凶事克体之期**：
  - 寻找全卦中克害体卦的五行。
  - 应期必在该克体五行**乘旺之日辰或月令**（例如：金为体，离火来克，卦无土解救，应在巳、午火旺之日，或丙丁日）。
- **行人归期**：以生体卦、比和卦对应之五行日为归期。

---

## 模块六：三要十应外应推演系统

- **出处**：F1 卷二《三要灵应篇》《十应奥论》《十应目论》；F2 卷之二《三要灵应篇》《十应奥论》《十应目论》。

### 规则 6.1：三要总括
- **耳（闻声）**：凡听得之声音，喜笑乐声主吉，悲泣破裂争斗声主凶；
- **目（见物）**：凡眼见之形象，物色圆完整洁主吉，残缺破损污秽主凶；
- **心（神悟）**：心神灵动，方寸湛然，见兆应机而动。

### 规则 6.2：十应类属与卦象交互规则
十应作为主卦之外的“客卦/外应环境参数”，将其五行属性带入体用系统参断：
1. **天时之应**：晴明为离(火)，阴雨为坎(水)，雷霆为震(木)，风顺为巽(木)，雪霜为乾兑(金)。
2. **地理之应**：高冈丘陵为艮(土)，平地原野为坤(土)，江河溪流为坎(水)，道路森林为震巽(木)。
3. **人事之应**：士人官吏为乾，妇人阴柔为坤，长幼有序，喜庆谈笑为吉应，号泣怒骂为凶兆。
4. **时令之应**：详审当下月日时之五行衰旺。
5. **方卦之应**：来人之方位八卦。
6. **动物之应**：见龙马乾震为吉，见乌鸦坎离为非，见犬吠防盗，见鸡鸣主烹。
7. **静物之应**：见金宝钱帛主财，见刀剑绳索主损伤官非。
8. **言语之应**：旁人所吐言词，字字为谶。
9. **声音之应**：丝竹钟鼓乐声主喜，折木破碗声主凶。
10. **五色之应**：青碧主木，赤紫主火，黄赭主土，素白主金，玄黑主水。

### 规则 6.3：外应融入体用计算规则
- 若起卦完成后，突发外应（如忽闻犬吠、忽见红衣人走过）：
  - 提取该外应之八卦/五行属性 $E_{ying}$；
  - $E_{ying}$ 生体卦 $\implies$ 吉庆加成；
  - $E_{ying}$ 克体卦 $\implies$ 灾患加剧；
  - $E_{ying}$ 与体卦比和 $\implies$ 外力相助。

---

## 模块七：两底本版本差异比对与工程实现采信决策汇总表

| 序号 | 规则模块 | 底本一（殆知阁三卷本系统） | 底本二（故宫秣陵德聚堂五卷本） | [版本差异考订] | [工程实现采信决策] |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **1** | **全书体例** | 分卷一、二、三，共三卷。无字画拆字专卷。 | 分卷之一至五，共五卷。卷四五收大量拆字法。 | 底本一为早中期精简坊本；底本二为清代成熟五卷本。 | **采信底本一至三卷为核心卦法**；卷四五拆字作为扩展子系统。 |
| **2** | **序言署名** | 卷端题“清黄宗羲撰序”。 | 卷端署“秣陵德聚堂谨订”。 | 底本一黄宗羲序系清中叶书坊伪托；底本二署德聚堂为正本。 | **采信底本二考订结论**，元数据废弃黄宗羲作序说。 |
| **3** | **字占声调** | 记四声调声，未附入声判定。 | 正文注有校记，明确平仄调法。 | 两本皆基于中古平水韵四声体系。 | **程序提供双模式**：默认古典平水韵；兼容现代拼音调值模式。 |
| **4** | **克应文字** | 记作“克则最难”、“以数而克之”。 | 记作“刻期最难”、“以数而刻之”。 | 底本一为音近传抄致讹；底本二作“刻期”字义精确。 | **采信底本二“刻期”**，程序模块命名为 `calculate_keqi()`。 |
| **5** | **物数占名** | 题《物数占例》。 | 题《物占数》（注：校本题物数占）。 | 篇名微异，正文除法与取爻规则完全一致。 | **功能命名为 `divine_by_object_count()`**。 |
| **6** | **乾坤无互** | 仅记“乾坤无互，互其变卦”。 | 同样记“乾坤无互，互其变卦”。 | 两本均列为重要推演口诀，但未加长篇注脚。 | **算法严格实现分支**：遇纯乾纯坤取变卦之2,3,4与3,4,5爻为互。 |
| **7** | **四季旺衰** | 卷一仅列旺与衰（死）。 | 卷一列旺衰，卷五附五行四时旺相休囚表。 | 底本二图表虽残脱，但其理论框架完全合乎五行通论。 | **采用标准5x5旺相休囚死矩阵**（见模块四表），完全固化。 |
| **8** | **加数起卦** | 卷二载寅年十二月初一日午时三家起造例。 | 卷二载同样案例，记述相同。 | 两本高度一致，确立了多人并发消除同卦的核心机制。 | **强制作为排卦引擎的多人去重接口**。 |

---

## 模块八：程序实现伪代码（Python标准实现范式）

为便于工程师直接阅读与转化，提供核心调度与推演的完整伪代码模型：

```python
# coding: utf-8
from dataclasses import dataclass
from typing import Tuple, List

# 八卦常量
BAGUA_NAMES = ["", "乾", "兑", "离", "震", "巽", "坎", "艮", "坤"]
BAGUA_ELEMENTS = ["", "金", "金", "火", "木", "木", "水", "土", "土"]

# 爻画定义（0: 阴, 1: 阳），自下而上列表：[初爻, 二爻, 三爻]
BAGUA_YAO = {
    1: [1, 1, 1], # 乾 (三阳)
    2: [1, 1, 0], # 兑 (初阳, 二阳, 三阴)
    3: [1, 0, 1], # 离 (初阳, 二阴, 三阳)
    4: [1, 0, 0], # 震 (初阳, 二阴, 三阴)
    5: [0, 1, 1], # 巽 (初阴, 二阳, 三阳)
    6: [0, 1, 0], # 坎 (初阴, 二阳, 三阴)
    7: [0, 0, 1], # 艮 (初阴, 二阴, 三阳)
    8: [0, 0, 0], # 坤 (三阴)
}

def mod8_gua(n: int) -> int:
    r = n % 8
    return 8 if r == 0 else r

def mod6_yao(n: int) -> int:
    r = n % 6
    return 6 if r == 0 else r

def get_gua_by_yao(yao: List[int]) -> int:
    for g, y in BAGUA_YAO.items():
        if y == yao:
            return g
    return 8

@dataclass
class HexagramResult:
    upper_gua: int       # 上卦先天数 (1-8)
    lower_gua: int       # 下卦先天数 (1-8)
    dong_yao: int        # 动爻位 (1-6)
    ti_gua: int          # 体卦先天数 (1-8)
    yong_gua: int        # 用卦先天数 (1-8)
    ti_is_upper: bool    # 体卦是否在上卦
    hu_upper: int        # 上互卦先天数 (1-8)
    hu_lower: int        # 下互卦先天数 (1-8)
    bian_upper: int      # 变卦之上卦先天数 (1-8)
    bian_lower: int      # 变卦之下卦先天数 (1-8)

def deduce_meihua(upper: int, lower: int, dong: int) -> HexagramResult:
    # 1. 组成本卦六爻 (自初爻至上爻, 索引0至5)
    six_lines = BAGUA_YAO[lower] + BAGUA_YAO[upper]
    
    # 2. 判定体用 (动爻在下卦则下用上体；在上卦则上用下体)
    if dong in [1, 2, 3]:
        ti_gua = upper
        yong_gua = lower
        ti_is_upper = True
    else:
        ti_gua = lower
        yong_gua = upper
        ti_is_upper = False
        
    # 3. 产生变卦 (仅动爻发生二进制翻转)
    bian_lines = list(six_lines)
    target_idx = dong - 1
    bian_lines[target_idx] = 1 if bian_lines[target_idx] == 0 else 0
    bian_lower = get_gua_by_yao(bian_lines[0:3])
    bian_upper = get_gua_by_yao(bian_lines[3:6])
    
    # 4. 产生互卦（包含“乾坤无互，互其变卦”边界处理）
    if (upper == 1 and lower == 1) or (upper == 8 and lower == 8):
        # 乾坤无互，互其变卦
        hu_lower = get_gua_by_yao([bian_lines[1], bian_lines[2], bian_lines[3]])
        hu_upper = get_gua_by_yao([bian_lines[2], bian_lines[3], bian_lines[4]])
    else:
        # 常规互卦 (取本卦二三四爻为下互，三四五爻为上互)
        hu_lower = get_gua_by_yao([six_lines[1], six_lines[2], six_lines[3]])
        hu_upper = get_gua_by_yao([six_lines[2], six_lines[3], six_lines[4]])
        
    return HexagramResult(
        upper_gua=upper,
        lower_gua=lower,
        dong_yao=dong,
        ti_gua=ti_gua,
        yong_gua=yong_gua,
        ti_is_upper=ti_is_upper,
        hu_upper=hu_upper,
        hu_lower=hu_lower,
        bian_upper=bian_upper,
        bian_lower=bian_lower
    )
```

> **本规格书结语**：以上条目涵盖了《梅花易数》排卦、体用演化、旺衰克应及断期之全部数理骨架。开发者依据此规范可百分之百还原宋明清三代梅花数术推演体系。

# 《皇极经世》数理结构·技术规格书

# 《皇极经世》数理结构技术规格书（程序实现工程级标准）

> **文档性质**：软件工程系统设计与算法规格说明书（Software Architecture & Mathematical Engine Specification）  
> **面向目标**：为历史时空推演引擎、皇极象数推步算法、易学天道历法系统开发提供无歧义、数学化、确定性的工程实现基准。  
> **依据底本**：  
> - **底本一**：《皇极经世书》（文渊阁《四库全书》本，含《观物内篇》五十一至六十二、观物外篇衍义，本地路径：`/home/lewin/@Sync/Casket/obsidian/lewin/raw/古籍/术数/皇极经世书.md`）  
> - **底本二**：《皇极经世》（道藏/四库本《邵子全书》以运经世编年，本地路径：`/home/lewin/@Sync/Casket/obsidian/lewin/raw/古籍/术数/皇极经世.md`）  
> - **参校文献**：南宋·张行成《皇极经世观物外篇衍义》《皇极经世索隐》、南宋·祝泌《皇极经世解起数诀》、清·王植《皇极经世书解》十四卷。

---

## 模块零：核心设计理念与宇宙时空拓扑模型

邵雍《皇极经世》的数理核心，是建立在**“天人合一、大微同构、阴阳消长、以理寓数”**之上的宏大宇宙历史编年体系。其算法设计呈现三大特征：
1. **分形同构（Fractal Isomorphism）**：宇宙物理时间（元会运世，大四象）与人类日用时间（年月日时，小四象）在数学结构上严格等比放大。
2. **二元交替嵌套（Alternating Radix）**：以阳数基数 12（天统体）与阴数基数 30（地分用）交替相乘，驱动全元周期。
3. **六十卦周天历度（Cyclic Hexagram Mapping）**：去除乾、坤、坎、离四正卦以统四时，以其余六十卦三百六十爻配周天三百六十度与全元三百六十运。

---

## 模块一：元会运世单位制完整定义（数学公式与全层级矩阵）

### 1.1 大小四象同构映射模型
邵雍在《观物内篇·五十一》指出：“天统乎体而托地以为体，地分乎用而承天以为用……四时体数也，三月三十日用数也。”  
宇宙时间尺度（大四象）与地球日历尺度（小四象）形成严格映射：

- **日 (Day) ↔ 世 (Shi)**：基数为 30（地之用数，一月30日，一世30年）
- **月 (Month) ↔ 运 (Yun)**：基数为 12（天之体数，一年12月，一运12世）
- **年 (Year) ↔ 会 (Hui)**：基数为 30（地之用数，一岁360日/30为纲，一会30运）
- **周/世 (Cycle) ↔ 元 (Yuan)**：基数为 12（天之体数，一元12会）

### 1.2 各级单位定义与换算递推公式（写死）
系统固化以下基准换算关系：
- 1 元 (Yuan) = 12 会 (Hui)
- 1 会 (Hui) = 30 运 (Yun)
- 1 运 (Yun) = 12 世 (Shi)
- 1 世 (Shi) = 30 年 (Year)
- 1 年 (Year) = 12 月 (Month)
- 1 月 (Month) = 30 日 (Day)
- 1 日 (Day) = 12 辰 (Hour/Shichen)

由此可导出面向程序数据类型的绝对整型换算矩阵：

| 目标单位 \ 基准单位 | 1 元 (Yuan) | 1 会 (Hui) | 1 运 (Yun) | 1 世 (Shi) | 1 年 (Year) | 1 月 (Month) | 1 日 (Day) |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **会 (Hui)** | **12** | 1 | — | — | — | — | — |
| **运 (Yun)** | **360** | **30** | 1 | — | — | — | — |
| **世 (Shi)** | **4,320** | **360** | **12** | 1 | — | — | — |
| **年 (Year)** | **129,600** | **10,800** | **360** | **30** | 1 | — | — |
| **月 (Month)** | **1,555,200** | **129,600** | **4,320** | **360** | **12** | 1 | — |
| **日 (Day)** | **46,656,000** | **3,888,000** | **129,600** | **10,800** | **360** | **30** | 1 |
| **辰 (Hour)** | **559,872,000** | **46,656,000** | **1,555,200** | **129,600** | **4,320** | **360** | **12** |

### 1.3 核心数理常数（全系统写死）
- **全元总年数**：T_Yuan = 12 × 30 × 12 × 30 = 129,600 年
- **一会之年数**：T_Hui = 30 × 12 × 30 = 10,800 年
- **一运之年数**：T_Yun = 12 × 30 = 360 年（对应周天 360 度，一岁 360 日）
- **一世之年数**：T_Shi = 30 年（三十年为一世，一代人之更迭）

---

## 模块二：以元经会 / 以会经运 / 以运经世 三层纪年表的结构规律

邵雍在《皇极经世》中构造了贯通古今的历史大年表。程序实现必须将其分解为标准的多级复合索引结构。

### 2.1 三层纪年表分层定义
1. **第一层：以元经会（宏观大运表，观物篇一至五）**
   - 索引范围：会编号 H ∈ [1, 12]，以十二地支命名：
     - 子会(1)、丑会(2)、寅会(3)、卯会(4)、辰会(5)、巳会(6)、午会(7)、未会(8)、申会(9)、酉会(10)、戌会(11)、亥会(12)。
   - 每一会冠以天干会名，如“经会之子一”、“经会之丑二”……“经会之巳六”、“经会之午七”等。
2. **第二层：以会经运（中观运度表，观物篇六至二十四）**
   - 索引范围：全元全局运编号 Y_global ∈ [1, 360]。
   - 会内局部运编号 y_local ∈ [1, 30]。
   - 换算公式：Y_global = (H - 1) × 30 + y_local。
   - **运之天干地支排布规则**：
     - 运以六十甲子顺行排布。
     - 子会（1~30运）：甲子(1)至癸巳(30)；
     - 丑会（31~60运）：甲午(31)至癸亥(60)；
     - 寅会（61~90运）：甲子(1)至癸巳(30)；
     - 卯会（91~120运）：甲午(31)至癸亥(60)；
     - 其余各会依次交替类推。
3. **第三层：以运经世（微观编年表，观物篇二十五至三十四）**
   - 索引范围：全元全局世编号 S_global ∈ [1, 4320]。
   - 运内局部世编号 s_local ∈ [1, 12]，以十二地支标示（子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥）。
   - 换算公式：S_global = (Y_global - 1) × 12 + s_local。
   - **世内三十年排布规则（关键数学定理）**：
     - 每一世恒定包含 30 年。
     - **奇数世（S_global % 2 == 1）**：固定取六十甲子前半部，即 **甲子(1) 至 癸巳(30)**。
     - **偶数世（S_global % 2 == 0）**：固定取六十甲子后半部，即 **甲午(31) 至 癸亥(60)**。
     - 两世合为一甲子（60年），一运十二世合为六个甲子循环（360年）。

### 2.2 绝对年份到四级坐标的转换算法
给定从本元开辟起的绝对累积年份 N_year ∈ [1, 129600]：

- H = (N_year - 1) // 10800 + 1  (范围 [1, 12])
- Y_global = (N_year - 1) // 360 + 1  (范围 [1, 360])
- S_global = (N_year - 1) // 30 + 1  (范围 [1, 4320])
- YearInShi = (N_year - 1) % 30 + 1  (范围 [1, 30])
- s_local = (S_global - 1) % 12 + 1  (映射至 子~亥)
- y_local = (Y_global - 1) % 30 + 1

该年份干支在六十甲子中的索引 GZ ∈ [0, 59] 为：
- 若 S_global 为奇数：GZ = YearInShi - 1（即 0 对应甲子，29 对应癸巳）；
- 若 S_global 为偶数：GZ = YearInShi + 29（即 30 对应甲午，59 对应癸亥）。

### 2.3 历史年份定位与现代公历转换锚定（Anchor Points）

邵雍《以运经世》年表记录了自帝尧肇位于平阳至五代周世宗柴荣终、宋太祖即位的信史纪年。

```
【巳会之末】（第180运，癸巳运）
  ├── 第2149世（子）至 第2155世（午）：史前传疑时代
  └── 第2156世（未，偶数世）：第11年为【甲辰年】—— 唐帝尧肇位元年（公元前2357年）！
        │
【午会之始】（第181运，甲午运，夏至一阴生）
  ├── 第2161世（子）至 第2172世（亥）：夏朝历年
  ├── 第182运（乙未运）：商朝立国
  ├── 第183运（丙申运）：周朝立国
  └── 第184运（丁酉运）：唐宋变革期
        └── 第2266世（酉，偶数世）：第27年为【庚申年】—— 宋太祖建隆元年（公元960年）！
```

#### 核心历史锚定表（写死参数，经原文精确对勘）
| 历史事件 | 邵雍年表坐标 | 世内年序与干支 | 全元绝对年数 N_year | 对应公历纪年 |
| :--- | :--- | :--- | :--- | :--- |
| **唐帝尧即位元年** | 巳会·第180运·第2156世（未） | 第11年（甲辰） | **64,661** | **公元前 2357 年 (BCE 2357)** |
| **虞舜受禅元年** | 巳会·第180运·第2158世（酉） | 第21年（甲午） | **64,731** | **公元前 2287 年 (BCE 2287)** |
| **夏禹受禅元年** | 巳会·第180运·第2159世（戌） | 第24年（丁未） | **64,764** | **公元前 2254 年 (BCE 2254)** |
| **商汤立国元年** | 午会·第182运·第2176世（辰） | 第16年（乙亥） | **65,266** | **公元前 1752 年 (BCE 1752)** |
| **周武王克商元年** | 午会·第183运·第2197世（子） | 第16年（己卯） | **65,896** | **公元前 1122 年 (BCE 1122)** |
| **宋太祖建隆元年** | 午会·第184运·第2266世（酉） | 第27年（庚申） | **67,977** | **公元 960 年 (CE 960)** |
| **宋神宗熙宁十年**（邵子卒年）| 午会·第184运·第2267世（戌） | 第14年（丁巳） | **68,094** | **公元 1077 年 (CE 1077)** |

#### 公元纪年双向转换公式（标准基准常数：Offset = 67017）
注：天文历法计算无公元 0 年，公元前 1 年直接衔接公元 1 年。
- **公元年份 CE 转 全元绝对年数 N_year**：
  - 若为公元后（CE > 0）：
    N_year = CE + 67017
  - 若为公元前（BCE > 0）：
    N_year = 67018 - BCE
- **全元绝对年数 N_year 转 公元纪年**：
  - 若 N_year > 67017：
    公元后 CE = N_year - 67017
  - 若 N_year <= 67017：
    公元前 BCE = 67018 - N_year

---

## 模块三：先天六十四卦圆图配值运世年规则

### 3.1 伏羲先天六十四卦圆图基础与四正卦去取
- **圆图拓扑**：伏羲先天六十四卦圆图以乾南坤北、离东坎西为四正。
- **四正卦去取原则（核心理论）**：
  - 邵雍《观物外篇》明确立论：“乾坤坎离为四正，行四时之气，故六十卦分值一元之运。”
  - **乾、坤、坎、离**作为天地日月之大本，居于四方，不参与六十卦的循环值事。
  - 去除四正卦后，保留 **六十卦**！
  - 60 卦 × 6 爻 = 360 爻，完美对应一元之 360 运及一岁之 360 日。

#### 圆图六十卦序列表（去乾、坤、坎、离后，自复卦顺行）
- **阳升三十卦（左半圈，自北顺行至南）**：
  1.复、2.颐、3.屯、4.益、5.震、6.噬嗑、7.随、8.无妄、9.明夷、10.贲、11.既济、12.家人、13.丰、14.革、15.同人、16.临、17.损、18.节、19.中孚、20.归妹、21.睽、22.兑、23.履、24.泰、25.大畜、26.需、27.小畜、28.大壮、29.大有、30.夬。
- **阴降三十卦（右半圈，自南顺行至北）**：
  31.姤、32.大过、33.鼎、34.恒、35.巽、36.井、37.蛊、38.升、39.讼、40.困、41.未济、42.解、43.涣、44.蒙、45.师、46.遁、47.咸、48.旅、49.小过、50.渐、51.蹇、52.艮、53.谦、54.否、55.萃、56.晋、57.豫、58.观、59.比、60.剥。

### 3.2 值会卦（元之会卦，12会）
- `[分歧点 1：会卦取用]`
  - **派别 A（十二辟卦/消息卦派，张行成、王植采信，理学权威通论）**：
    - 依据阴阳消长法则，以十二辟卦对应十二会：
      - 子会：地雷复（一阳生，天开于子）
      - 丑会：地泽临（二阳生，地辟于丑）
      - 寅会：地天泰（三阳生，人生于寅）
      - 卯会：雷天大壮（四阳）
      - 辰会：泽天夬（五阳）
      - 巳会：乾为天（六阳纯阳，阳极）
      - 午会：天风姤（一阴生，夏至阴生）
      - 未会：天山遁（二阴生）
      - 申会：天地否（三阴生）
      - 酉会：风地观（四阴生）
      - 戌会：山地剥（五阴生，物闭于戌）
      - 亥会：坤为地（六阴纯阴，天闭地闭）
  - **派别 B（圆图平均分配派，祝泌《起数诀》）**：
    - 将圆图去四正后的六十卦，每会平均分配 5 卦（12 × 5 = 60 卦）。
  - `[采信建议与工程实现决策]`：**坚决采信派别 A（十二辟卦法）**。十二消息卦推天道盛衰最符合理学原旨，且与开物闭物完全吻合。

### 3.3 值运卦（会之运卦，360运）
- **主流标准算法（圆图三百六十爻配运法，张行成、王植标准注本）**：
  - 圆图六十卦，共有 360 爻。
  - **一爻值一运（360年）**！一卦六爻管六运（6 × 360 = 2,160 年）。
  - 给定全局运编号 Y ∈ [1, 360]：
    - 卦索引 GuaIdx = (Y - 1) // 6 ∈ [0, 59]（取圆图第 GuaIdx + 1 卦）。
    - 动爻位 YaoIdx = (Y - 1) % 6 + 1 ∈ [1, 6]（初爻至上爻）。
    - **当运值事卦**：圆图第 GuaIdx + 1 卦。
    - **当运变卦**：该卦第 YaoIdx 爻发动所变成之卦。
- `[分歧点 2：祝泌运卦起例]`：
  - 祝泌《皇极经世解起数诀》采用“大衍变卦取动爻法”，每会以会卦动爻生运卦，规则庞杂多变，且难以形成自洽闭环。
  - `[采信建议与工程实现决策]`：**采信“圆图六十卦爻值运法”**。算法清晰无二义，单射可逆。

### 3.4 值世卦（运之世卦，4320世）
一运管 12 世（360年），如何由值运卦推导 12 世之卦？
- `[分歧点 3：世卦推导流派]`
  - **流派 A（王植《皇极经世书解》爻动生变法，工程推荐）**：
    - 以当运之值运卦为体。
    - 该卦六爻依次发动变出 6 卦，管前 6 世（1~6世）；
    - 再将此 6 卦之反卦（或对冲之卦、变卦之互卦）管后 6 世（7~12世）。
  - **流派 B（张行成卦气图法）**：
    - 以运卦配合世卦图谱轮转。
  - **流派 C（平分六十卦法）**：
    - 每运 12 世，30 运共 360 世，以六十卦乘六爻推步。
  - `[采信建议与工程实现决策]`：以**流派 A 为默认世卦推演标准**，并在数据模型中保留世卦覆盖字段。

### 3.5 值年卦（世之流年卦，129600年）
一世 30 年，每年值何卦？
- `[分歧点 4：流年值卦算法]`
  - **算法一（圆图六十卦花甲子对位法，历代通俗与占验最通行，强烈推荐）**：
    - 两世 60 年，正好合一六十甲子。
    - 六十甲子年（甲子、乙丑...至癸亥）直接与圆图六十卦进行一对一单射映射！
    - 例如：甲子年值复卦，乙丑年值颐卦，丙寅年值屯卦... 癸亥年值剥卦。
    - 无论处于哪一世，每 60 年完整周流一次圆图六十卦。
  - **算法二（世卦爻管五年候卦法，王植派）**：
    - 一世之世卦有六爻，每爻值 5 年（6 × 5 = 30 年）。
  - `[采信建议与工程实现决策]`：**采用“算法一（圆图六十卦配六十花甲法）”作为主流值年卦接口**；提供“算法二（候卦）”作为微观运势扩展接口。

---

## 模块四：开物与闭物时间窗口

“开物”与“闭物”是邵雍界定宇宙万物生死存亡、人类文明活跃期与蛮荒混沌期的绝对分水岭。

### 4.1 宇宙演化十二会全景与相变窗口
根据《观物内篇·五十二》与《皇极经世心易发微》记载：

```
 会序:   子会(1)    丑会(2)    寅会(3)    卯~巳(4~6)   午会(7)    未~酉(8~10)  戌会(11)   亥会(12)
 状态: ［ 天开 ］ ［ 地辟 ］ ［ 人生 ］ ［ 阳升发展 ］ ［ 阴生 ］ ［ 阴长收敛 ］ ［ 物闭 ］ ［ 地闭 ］
        └──────────────────┘                                            └──────────────────┘
           【开辟准备期】                 【万物繁茂活跃期】                  【衰退闭塞期】
           (21,600年)                     (86,400年)                      (21,600年)
```

- **天开于子**（子会，第 1~10,800 年）：轻清之气上升，天体星辰始现。
- **地辟于丑**（丑会，第 10,801~21,600 年）：重浊之气凝聚，水火土石地形始固。
- **人生于寅**（寅会，第 21,601~32,400 年）：草木萌动，鸟兽繁衍，人类诞生。
  - **开物关键节点**：**寅会之中（惊蛰气）**，即第 3 会第 15 运与 16 运之交。
  - **绝对时间**：全元第 **27,000 年**。
- **物闭于戌**（戌会，第 108,001~118,800 年）：阴气大盛，万物凋零萧杀。
  - **闭物关键节点**：**戌会之中（立冬气）**，即第 11 会第 15 运（全元第 315 运）。
  - **绝对时间**：全元第 **113,400 年**。
- **地闭于亥**（亥会，第 118,801~129,600 年）：坤卦纯阴，地体冻结，人类万物绝迹。
- **天闭于子**（子会之初）：一元终了，混沌不分，等待新一元一阳初生。

### 4.2 开物 / 闭物数学时间窗口（写死参数）
- **开物绝对年份**：N_kaiwu = 27,000 年
- **闭物绝对年份**：N_biwu = 113,400 年
- **有效生物文明窗口期**：
  Delta_T_active = N_biwu - N_kaiwu = 113,400 - 27,000 = 86,400 年
  （正好等于 8 会 = 8 × 10,800 年，即全元十二会中的整整 **三分之二**！）。
- **混沌未开与闭物冻结期**：
  Delta_T_inactive = 129,600 - 86,400 = 43,200 年
  （正好等于 4 会 = 4 × 10,800 年，占全元 **三分之一**）。
- **当今天下所处坐标（当前人类位置）**：
  - 公元 2026 年：
    N_year = 2026 + 67017 = 69,043 年
  - 会位：H = (69043 - 1) // 10800 + 1 = 7（**第七会，午会**！）。
  - 运位：Y = (69043 - 1) // 360 + 1 = 192（**第 192 运**！）。
  - 世位：S = (69043 - 1) // 30 + 1 = 2302（**第 2302 世**，偶数世！）。
  - 年位：第 13 年，干支为 **丙午年**。
  - 距开物已过：69,043 - 27,000 = 42,043 年。
  - 距闭物尚余：113,400 - 69,043 = 44,357 年。
  - 结论：当今世界正处在天地之午会（日正中天已过，夏至一阴初生），文明处于开物后半程的极盛与收敛演变之中。

---

## 模块五：声律唱和（可执行规格）

本模块依据王植《皇极经世书解》卷四的《声音唱和》图说（原文行 1837–1865、1923–1935、2105–2113）。它是声音/文字的特征层，不反向修改梅花年月日时或皇极元会运世主干坐标。

### 5.1 坐标、体数与用数

王植的基本约定是“声为律、音为吕；律为唱、吕为和”（1857），天声主动，地音受动。天、地各先取四象，再展开各自的序号轴：

| 维度 | 四象顺序（固定） | 序号轴 | 单格总数 | 语义 |
|---|---|---|---:|---|
| 天声 | 日、月、星、辰 | 声位 1–10（甲–癸） | 4 × 10 = **40** | 天之体声 |
| 地音 | 水、火、土、石 | 音位 1–12（子–亥） | 4 × 12 = **48** | 地之体音 |
| 天声×地象 | 日月星辰 × 水火土石 | 每格 10 声位 | 16 × 10 = **160** | 天声全数 |
| 地音×天象 | 日月星辰 × 水火土石 | 每格 12 音位 | 16 × 12 = **192** | 地音全数 |

四象的先天对应固定为：

| 天声象 | 阴阳刚柔名 | 地音象 | 阴阳刚柔名 |
|---|---|---|---|
| 日 | 太阳 | 水 | 太柔 |
| 月 | 太阴 | 火 | 太刚 |
| 星 | 少阳 | 土 | 少柔 |
| 辰 | 少阴 | 石 | 少刚 |

工程中同时保留“体数”和“用数”两层：从天声全数 160 中扣除地之体数 48，得天声用数 **112**；从地音全数 192 中扣除天之体数 40，得地音用数 **152**。王植原文的总数校验为：

```text
动植全数 = 160 × 192 = 30,720
天声用数 = 160 - 48 = 112
地音用数 = 192 - 40 = 152
动物用数 = 112 × 152 = 17,024
植物用数 = 152 × 112 = 17,024
动植通数 = 17,024 × 17,024 = 289,816,576
```

这里的“体数扣除”是图中的无声/无音位置，不得把 112、152 误当成四声或十二音的数量；图外的空位仍属于全图拓扑，但不进入用数乘法（1837–1849、1853–1859、2105–2107）。

### 5.2 天声、地音的完整状态表

| 轴 | 状态顺序 | 数值编码 | 与四象的配合 |
|---|---|---|---|
| 天声调 | 平、上、去、入 | tone = 1、2、3、4 | 分别以日、月、星、辰配四声，形成 4 × 4 的声象格 |
| 地音开合 | 开、发、收、闭 | opening = 1、2、3、4 | 分别以水、火、土、石配四音，形成 4 × 4 的音象格 |
| 天声序号 | 甲、乙、丙、丁、戊、己、庚、辛、壬、癸 | voice = 1…10 | 每一声图纵向十位 |
| 地音序号 | 子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥 | sound = 1…12 | 每一音图横向十二位 |
| 声性质 | 奇声 / 偶声 | odd / even | 奇声清、偶声浊；对应律的闢/翕 |
| 音性质 | 闢 / 翕 | open / closed | 阳主闢而出，阴主翕而入；对应吕的开/闭行 |

图表层的固定规模为：四声图 4 ×（四象 × 十声位）= 160 个天声格，四音图 4 ×（四象 × 十二音位）= 192 个地音格；扣除体数后，天声用格 112、地音用格 152。十声图与十二音图的交叉方向分别为 10 × 12 = 120 个“唱吕”图和 12 × 10 = 120 个“和律”图；四声/四音状态展开后总目录为 16 × 240 = **3,840 图**（例言行 151–153，瑞节注行 1861–1863）。

### 5.3 唱和计算规则

输入必须是一个声坐标和一个音坐标：

```text
声坐标 = (sky ∈ {日,月,星,辰}, tone ∈ {平,上,去,入}, voice ∈ 1..10)
音坐标 = (earth ∈ {水,火,土,石}, opening ∈ {开,发,收,闭}, sound ∈ 1..12)
```

计算步骤固定如下：

1. 将 `sky` 映射为 1–4，将 `tone` 映射为 1–4，将 `earth` 映射为 1–4，将 `opening` 映射为 1–4；序号越界直接拒绝。
2. 以 `voice`（1–10）在相应天声图取“律”，以 `sound`（1–12）在相应地音图取“吕”。
3. 唱和的正向结果为 `律唱吕`，反向结果为 `吕和律`；两者使用同一对坐标，不交换奇偶规则。
4. 声位为奇数时标记 `清/闢`，为偶数时标记 `浊/翕`；这两个标签是结构字段，不是现代普通话声调判断。
5. 若文字有反切资料，反切上字进入天声坐标、反切下字进入地音坐标；若只有现代拼音，不得假称已经完成古音反切定位，应保留 `音位未定`。
6. 只在去除体数后的有效格中输出 `use_voice_index`、`use_sound_index`；空位输出 `usable=false` 和原因，不以 0 冒充一个音数。
7. 对有效格输出 `animal_number = use_voice_index × use_sound_index`（范围 1–17,024）；反向“植物”计算为 `use_sound_index × use_voice_index`，数值相同但方向不同。

王植举例的图读法是：直看第一维为日声水音、第二维为月声火音、第三维为星声土音、第四维为辰声石音；横看同样按日/月/星/辰行进（1850–1851）。因此一个可复现的结果至少必须回显四元组坐标、声/音序号、清浊/闢翕标签、是否体数空位和乘积，不能只返回一个汉字或吉凶判断。

### 5.4 与元会运世的衔接

声律层沿用与元会运世相同的四象递推，但不把声音乘积直接当作年份：王植明确给出“日日声即元之元，日月声即元之会，日星声即元之运，日辰声即元之世”（2105–2107）。因此接口映射固定为：

| 声象 | 元会运世层 | 接口字段 |
|---|---|---|
| 日声 | 元之元 | `yuan` |
| 月声 | 元之会 | `hui` |
| 星声 | 元之运 | `yun` |
| 辰声 | 元之世 | `shi` |

给定皇极坐标 `(yuan, hui, yun, shi)` 时，可将四层标签作为声音图的四层寻址上下文；给定声音坐标时，只能生成对应的声律特征，不能反推出唯一历史年份，除非另有完整的元会运世输入。`yun_gua(year)` 的值运卦/值世卦计算不调用声律模块，保证主干确定性与声律特征层解耦。

### 5.5 工程边界

- 声律模块不参与年月日时起卦、旺衰、应期、河洛本命或元会运世主坐标。
- “平上去入”是图中 `tone=1..4` 的结构编码；“开、发、收、闭”是 `opening=1..4` 的结构编码，不等同现代语音学声调/韵母分类。
- 古音反切表、无声/无音体数掩码尚需独立数据表；在该表落地前，生产接口只能返回坐标和可用性，禁止伪造汉字音值。
- 规则依据：王植原文 1837–1859、1861–1867、1923–1935、2105–2113；其中 1853–1855 的无声/无音说明优先于现代音韵学解释。

---

## 模块六：工程实现核心 Python 类库与算法参考（标准实现范式）

以下提供生产级 Python 算法参考实现，可直接集成进排卦与天文历推步系统：

```python
# coding: utf-8
from dataclasses import dataclass
from typing import Tuple, Dict, Any

# 1. 常量定义
TIAN_GAN = ["", "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]
DI_ZHI = ["", "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]

# 六十甲子表
SIXTY_JIAZI = [
    "甲子", "乙丑", "丙寅", "丁卯", "戊辰", "己巳", "庚午", "辛未", "壬申", "癸酉",
    "甲戌", "乙亥", "丙子", "丁丑", "戊寅", "己卯", "庚辰", "辛巳", "壬午", "癸未",
    "甲申", "乙酉", "丙戌", "丁亥", "戊子", "己丑", "庚寅", "辛卯", "壬辰", "癸巳",
    "甲午", "乙未", "丙申", "丁酉", "戊戌", "己亥", "庚子", "辛丑", "壬寅", "癸卯",
    "甲辰", "乙巳", "丙午", "丁未", "戊申", "己酉", "庚戌", "辛亥", "壬子", "癸丑",
    "甲寅", "乙卯", "丙辰", "丁巳", "戊午", "己未", "庚申", "辛酉", "壬戌", "癸亥"
]

# 十二辟卦（会卦）
HUI_GUA = ["", "复", "临", "泰", "大壮", "夬", "乾", "姤", "遁", "否", "观", "剥", "坤"]

# 先天六十四卦圆图去四正后之六十卦序（复至剥）
SIXTY_ROUND_GUA = [
    # 阳升三十卦
    "复", "颐", "屯", "益", "震", "噬嗑", "随", "无妄", "明夷", "贲",
    "既济", "家人", "丰", "革", "同人", "临", "损", "节", "中孚", "归妹",
    "睽", "兑", "履", "泰", "大畜", "需", "小畜", "大壮", "大有", "夬",
    # 阴降三十卦
    "姤", "大过", "鼎", "恒", "巽", "井", "蛊", "升", "讼", "困",
    "未济", "解", "涣", "蒙", "师", "遁", "咸", "旅", "小过", "渐",
    "蹇", "艮", "谦", "否", "萃", "晋", "豫", "观", "比", "剥"
]

# 公元纪年与皇极元绝对年数转换常量
CE_OFFSET = 67017

@dataclass
class HuangjiCoordinate:
    absolute_year: int     # 全元绝对年数 [1, 129600]
    hui_index: int         # 会序号 [1, 12]
    hui_name: str          # 会地支 (子~亥)
    hui_gua: str           # 会卦 (十二辟卦)
    yun_global: int        # 全局运序号 [1, 360]
    yun_local: int         # 会内运序号 [1, 30]
    yun_gua: str           # 值运卦
    yun_yao: int           # 值运卦爻位 [1, 6]
    shi_global: int        # 全局世序号 [1, 4320]
    shi_local: int         # 运内世序号 [1, 12]
    shi_name: str          # 世地支 (子~亥)
    year_in_shi: int       # 世内年序号 [1, 30]
    ganzhi: str            # 流年干支
    year_gua: str          # 流年值年卦 (六十花甲配圆图卦)
    is_kaiwu: bool         # 是否处于开物活跃期
    ce_year: int           # 公元年份 (负数表示公元前)

class HuangjiEngine:
    @staticmethod
    def ce_to_absolute_year(ce: int) -> int:
        # 公元年份转皇极绝对年数
        if ce > 0:
            return ce + CE_OFFSET
        elif ce < 0:
            return 67018 + ce
        else:
            raise ValueError("公元年份无公元0年，请使用 -1 表示公元前1年，1 表示公元1年。")

    @staticmethod
    def absolute_year_to_ce(ay: int) -> int:
        # 皇极绝对年数转公元年份
        if ay > CE_OFFSET:
            return ay - CE_OFFSET
        else:
            return ay - 67018

    @classmethod
    def calculate(cls, absolute_year: int) -> HuangjiCoordinate:
        # 根据全元绝对年数推导皇极四级坐标与全部卦象
        if not (1 <= absolute_year <= 129600):
            raise ValueError("绝对年数必须在 [1, 129600] 之间。")

        ay = absolute_year

        # 1. 会推导
        h_idx = (ay - 1) // 10800 + 1
        h_name = DI_ZHI[h_idx]
        h_gua = HUI_GUA[h_idx]

        # 2. 运推导
        y_global = (ay - 1) // 360 + 1
        y_local = (y_global - 1) % 30 + 1
        
        # 值运卦推导（圆图60卦，每爻管一运，6运管一卦）
        gua_idx = (y_global - 1) // 6
        yao_idx = (y_global - 1) % 6 + 1
        y_gua = SIXTY_ROUND_GUA[gua_idx]

        # 3. 世推导
        s_global = (ay - 1) // 30 + 1
        s_local = (s_global - 1) % 12 + 1
        s_name = DI_ZHI[s_local]

        # 4. 年与干支推导
        year_in_shi = (ay - 1) % 30 + 1
        if s_global % 2 == 1:
            # 奇数世，走前半部 0~29
            gz_idx = year_in_shi - 1
        else:
            # 偶数世，走后半部 30~59
            gz_idx = year_in_shi + 29
        ganzhi_str = SIXTY_JIAZI[gz_idx]

        # 流年值年卦（标准圆图配六十花甲）
        year_gua_str = SIXTY_ROUND_GUA[gz_idx]

        # 5. 开物与闭物状态判定 (开物27000年，闭物113400年)
        is_kaiwu_status = (27000 <= ay <= 113400)

        # 6. 对应公元年份
        ce = cls.absolute_year_to_ce(ay)

        return HuangjiCoordinate(
            absolute_year=ay,
            hui_index=h_idx,
            hui_name=h_name,
            hui_gua=h_gua,
            yun_global=y_global,
            yun_local=y_local,
            yun_gua=y_gua,
            yun_yao=yao_idx,
            shi_global=s_global,
            shi_local=s_local,
            shi_name=s_name,
            year_in_shi=year_in_shi,
            ganzhi=ganzhi_str,
            year_gua=year_gua_str,
            is_kaiwu=is_kaiwu_status,
            ce_year=ce
        )

# 单元测试验证
if __name__ == "__main__":
    engine = HuangjiEngine()
    
    # 验证唐尧即位元年 (公元前2357年)
    yao_ay = 64661
    res_yao = engine.calculate(yao_ay)
    print(f"唐尧即位年(64661): 会={res_yao.hui_name}, 运={res_yao.yun_global}, 世={res_yao.shi_global}({res_yao.shi_name}), 年序={res_yao.year_in_shi}, 干支={res_yao.ganzhi}")
    assert res_yao.ganzhi == "甲辰", "唐尧即位年必须为甲辰！"
    assert res_yao.shi_global == 2156, "唐尧即位年必须在第2156世！"
    assert res_yao.yun_global == 180, "唐尧即位年必须在第180运！"
    assert res_yao.ce_year == -2357, "唐尧即位年必须对应公元前2357年！"

    # 验证宋太祖建隆元年 (公元960年)
    song_ay = 67977
    res_song = engine.calculate(song_ay)
    print(f"宋建隆元年(67977): 会={res_song.hui_name}, 运={res_song.yun_global}, 世={res_song.shi_global}({res_song.shi_name}), 年序={res_song.year_in_shi}, 干支={res_song.ganzhi}")
    assert res_song.ganzhi == "庚申", "宋建隆元年必须为庚申！"
    assert res_song.shi_global == 2266, "宋建隆元年必须在第2266世！"
    assert res_song.ce_year == 960, "宋建隆元年必须对应公元960年！"

    # 验证公元2026年 (丙午年)
    ay_2026 = 69043
    res_2026 = engine.calculate(ay_2026)
    print(f"公元2026年(69043): 会={res_2026.hui_name}, 运={res_2026.yun_global}, 世={res_2026.shi_global}({res_2026.shi_name}), 年序={res_2026.year_in_shi}, 干支={res_2026.ganzhi}")
    assert res_2026.ganzhi == "丙午", "公元2026年必须为丙午年！"
    assert res_2026.ce_year == 2026, "必须对应公元2026年！"

    print("皇极经世数理引擎单元测试全部通过！")
```

---

## 模块七：工程实现采信决策汇总表（系统规约终审）

| 规则项 | 核心考辨与注家分歧 | 工程实现采信决策（写死标准） |
| :--- | :--- | :--- |
| **单位制进位** | 12与30交替嵌套（元12会、会30运、运12世、世30年）。 | **写死算法进位矩阵**，支持大数秒级精准双向转换。 |
| **四正卦去取** | 乾坤坎离是否参与值运值世。 | **坚决去除四正卦**，以圆图六十卦三百六十爻配周天运数。 |
| **会卦标准** | 十二消息卦派（张行成/王植） vs 圆图平分派（祝泌）。 | **采信十二辟卦/消息卦**（子复、丑临、寅泰、巳乾、午姤、戌剥、亥坤）。 |
| **值运卦规则** | 六十卦三百六十爻配360运 vs 祝泌挂一变卦。 | **采信圆图六十卦爻值运法**：GuaIdx = (Y-1)//6，YaoIdx = (Y-1)%6 + 1。 |
| **值世卦规则** | 值运卦动爻生变卦分统12世 vs 祝泌统宗世卦。 | **采信值运卦动爻生变卦分统12世**（王植《皇极经世书解》法）。 |
| **值年卦规则** | 六十花甲一对一顺配圆图六十卦 vs 候卦五年一爻动。 | **采信六十花甲顺配圆图六十卦法**，保证每年有明确独立主卦。 |
| **开物闭物窗口** | 寅会中惊蛰（第27000年）开物，戌会中立冬（第113400年）闭物。 | **硬编码窗口参数**：有效生命期为中间 8 会共 86,400 年。 |
| **声音律吕** | 天声地音十六位反切矩阵。 | **作为外围辅助音韵模块**，主干引擎仅提供四声量化接口。 |

# 《皇极经世》声音律吕唱和·技术规格书

# 皇极经世第四体系：声音律吕唱和数理规格书（初稿）

> **文档性质**：皇极经世声音律吕唱和体系（“皇极第四体系”）数理结构全息调研报告与程序实现规格书  
> **学术基准**：
> - 邵雍原典：《皇极经世书》（观物篇六十一、六十二、声音唱和万物通数第十、观物外篇）
> - 宋代阐微：张行成《皇极经世观物外篇衍义》（卷七·声音律吕与韵法考）、蔡元定《皇极经世指要》（三十二图法）
> - 清代校勘定本：王植《皇极经世书解》（卷四·声音唱和即四象天地之数图、卷十四·声音通数解）
> **术语规范**：严格遵循《邵雍易学数理工程统一术语总表》（`research/术语总表.md`）及《王植书解摘要》（`research/王植书解摘要.md`）

---

## 导论：为何称“声音唱和”为皇极第四体系？

在北宋邵雍所构建的宏大宇宙象数模型中，《皇极经世》并非仅是一部编年史或易学占筮书，而是一个由四大对偶层级构成的全息统一场模型：

```mermaid
graph TD
    subgraph 天之气数（历法经天·时间维度）
        Sys1["第一体系：以元经会<br/>（12会·开物闭物·129,600年演化大周期）"]
        Sys2["第二体系：以会经运<br/>（360运·运卦与世卦状态机·国运流转）"]
        Sys3["第三体系：以运经世、以世经年<br/>（4320世·甲子编年·值年六十卦）"]
    end

    subgraph 地之物数（声律经物·空间与形器维度）
        Sys4["第四体系：声音唱和经万物<br/>（天声地音·平上去入唱开发收闭·289,816,576变化通数）"]
    end

    Sys1 --> Sys2
    Sys2 --> Sys3
    Sys1 -.->|分形同构：开物闭物 vs 日出寅入戌| Sys4
    Sys2 -.->|数理对称：气数129,600 vs 声数30,720| Sys4
    Sys3 -.->|易占投影：四声起卦 平1上2去3入4| Sys4
```

- **前三体系以历治天（时间轴）**：从宇宙大运（元会）层层收敛至历史纪年（运世）与微观流年（世年），其本质是**“天之气数”**，以一元十二会、每会三十运、每运十二世、每世三十年递进；
- **第四体系以声治物（空间与物类轴）**：邵雍指出“盈天地之间惟万物，有万物则有声音，有声音则有律吕”。声音唱和体系以天声十六位唱地音十六位，通过矩阵张量积推演万物性情形体之变，其本质是**“地之物数”**；
- **二者一理而对偶互补**：《观物外篇衍义》明载：“元会运世者，气之数，故以推天；律吕声音者，声之数，故以推万物。二者一理而已。”

---

## 第一章 体系源流考订与底本辨伪

### 1.1 篇卷编排与宋清考订
根据邵伯温《皇极经世系述》与清代王植《皇极经世书解》之详考：
1. **全书十二卷之体裁**：
   - 卷一至六：元会运世编年之数（前三体系，以元经会、以会经运、以运经世）；
   - 卷七至十：声音律吕之数（第四体系，平上去入四声，共十六篇）；
   - 卷十一至十二：观物内篇与外篇（阐发二数之哲学总纲，如易之《系辞》）。
2. **蔡元定（西山）提纲三十二图**：
   - 南宋朱熹高足蔡元定作《皇极经世指要》，将声音部分归纳为三十二图（平上去入各八图）。西山指出：邵雍声音之学“非但以虚数相乘，盖有声者即有字，特邵子未及枚举”，确立了声音律吕图为音韵学与物理声学双重模型的地位。
3. **明代黄畿与三千八百四十图**：
   - 明代黄畿《皇极经世书传》将十六篇细分展开，平上去入各 960 图，全书共展开为 **3,840 图**。每图以三十二字为阵，涵盖中古切韵音系之全量音节。

### 1.2 辨伪：坚决芟汰南宋祝泌“声音配卦”之伪法
在文献传承中，南宋祝泌作《皇极经世书钤》，擅自将六十四卦卦爻及术家“天门地户人方鬼路”硬套入声音图谱，导致后世注家多所惑乱（明代黄畿本亦误收）。
清代考据巨擘王植在《书解·卷四》中展开了极为深刻的辨伪考据，确立了工程采信标准：
> “配卦之说，有是有非。元会运世，原因一岁以推一元之数，邵子既以三百六十卦当一年、以四正卦当闰，则以卦配年乃自然之理数……**若声音篇亦配以卦，则牵强夫离，与术家天门地户人方鬼路之妄说相出入！** 瑞节黄氏以为出于祝氏钤，而邵子未言，西山亦未用，则非邵子之意可知。今一切芟之，以复其初！”

**工程采信准则**：本项目声音引擎**绝不引入六十四卦与八宫杂卦数据结构**，彻底恪守邵雍原生以“天声（日月星辰）唱地音（水火土石）”之四象纯数理代数模型。

---

## 第二章 声音律吕四象数理基模

声音唱和体系以天地四象为基石，将自然物理声响与汉语言音韵结构实现了一一对应的数学编码。

### 2.1 天声体系（天之四象 · 主动 · 律天而唱）
天统乎体，声为阳，一之倡也。天声以字为主，对应天之四象，产生中古汉语四声：

| 天之四象 | 天体代表 | 四声类别 | 物理机理 | 辟翕极性 | 对应节气 | 基础字目（声母代表） |
| :---: | :---: | :---: | :---: | :---: | :---: | :--- |
| **太阳** | 日 | **平声** | 清扬平舒 | 平之辟 / 平之翕 | 春（发生） | 多、良、千、刀、妻、宫、心... |
| **太阴** | 月 | **上声** | 高拔升越 | 上之辟 / 上之翕 | 夏（盛大） | 可、火、宰、每、两、广、井... |
| **少阳** | 星 | **去声** | 峻烈直去 | 去之辟 / 去之翕 | 秋（收敛） | 个、化、爱、退、向、放、暗... |
| **少阴** | 辰 | **入声** | 遏绝急促 | 入之辟 / 入之翕 | 冬（闭藏） | 舌、八、物、割、月、足、没... |

- **天声数位结构**：
  - 阳数起于一而衍为十：天声以十为基数，十六位网格中，实取 **7 声**，其余 **3 声无字无声**（记为虚位○），后 6 位退藏不用；
  - 太阳、少阳各得 10，四象十六位全网格中，阳刚体数总计为 **160**。

### 2.2 地音体系（地之四象 · 受动 · 吕地而和）
地分乎用，音为阴，二之和也。地音以响为主，对应地之四象，产生口腔发音口态：

| 地之四象 | 地质代表 | 口腔口态 | 物理机理 | 清浊极性 | 对应季节 | 基础韵目（韵母代表） |
| :---: | :---: | :---: | :---: | :---: | :---: | :--- |
| **太柔** | 水 | **开音** | 口门大启（开口呼） | 开之清 / 开之浊 | 春（先闭后开） | 古、黑、安、夫、卜、东、乃... |
| **太刚** | 火 | **发音** | 声气向外舒发（齐齿呼） | 发之清 / 发之浊 | 夏（纯开） | 口、黄、五、吾、步、兑、自... |
| **少柔** | 土 | **收音** | 口势渐拢内敛（合口呼） | 收之清 / 收之浊 | 秋（先开后闭） | 甲、巧、花、华、瓦、牙、父... |
| **少刚** | 石 | **闭音** | 敛吻撮聚闭绝（撮口呼） | 闭之清 / 闭之浊 | 冬（闭塞无声） | 闭而不发，声歇于冬 |

- **地音数位结构**：
  - 阴数起于二而衍为十二：地音以十二辰为基数，十六位网格中，实取 **9 音**，其余 **3 音无音无字**（记为虚位○），后 4 位退藏不用；
  - 太阴、少阴各得 12，四象十六位全网格中，阴柔体数总计为 **192**。

---

## 第三章 进退算子与体用数论（数理核心）

《观物篇六十一》揭示了邵雍宇宙代数学中最为惊艳的**“进退体用算子”**：

### 3.1 阳刚与阴柔之体数
- 太阳之体数 10；少阳之体数 10；太刚之体数 10；少刚之体数 10；
  - 四阳刚相因为四象全矩阵：
    阳刚体数 = (10 + 10 + 10 + 10) * 4 = 160
- 太阴之体数 12；少阴之体数 12；太柔之体数 12；少柔之体数 12；
  - 四阴柔相因为四象全矩阵：
    阴柔体数 = (12 + 12 + 12 + 12) * 4 = 192
- **体数全数乘积（动植全数）**：
    动植全数 = 160 * 192 = 30,720
  此即万物形器、律吕声音之全部潜在理论态空间。

### 3.2 进退算子导出用数（112 与 152）
邵子曰：“进太阳少阳太刚少刚之体数，退太阴少阴太柔少柔之体数，是谓阳刚之用数；进太阴少阴太柔少柔之体数，退太阳少阳太刚少刚之体数，是谓阴柔之用数。”

- **阳刚用数推导**：
  - 阳刚总位 160，其中日月星辰四位各退 12（四象退数 12 * 4 = 48）；
  - 阳刚用数 = 160 - 48 = 112（即天声之实用数，天声唱吕之基数）。
- **阴柔用数推导**：
  - 阴柔总位 192，其中水火土石四位各退 10（四象退数 10 * 4 = 40）；
  - 阴柔用数 = 192 - 40 = 152（即地音之实用数，地音和律之基数）。
- **体用扣除比率**：
  - 体数总和：160 + 192 = 352（邵子比于一年三百六十日除闰之体）；
  - 用数总和：112 + 152 = 264（邵子比于夏至日出寅入戌，生物二百六十四日之用）。

---

## 第四章 唱和配数与代数矩阵（变化通数）

天声与地音通过两级张量积相乘，层层导出万物变化通数：

### 4.1 第一级唱和：变数（动数）与化数（植数）
天以声唱地，地以音和天。二者交错相乘，产生第一级宇宙生物离散模数：

1. **变数（日月星辰之变数 · 动数）**：
   - 阳刚之用数（天声 112）唱阴柔之用数（地音 152）：
     变数 (动数) = 112 * 152 = 17,024
   - 主飞禽走兽之动物，赋其性情。
2. **化数（水火土石之化数 · 植数）**：
   - 阴柔之用数（地音 152）和阳刚之用数（天声 112）：
     化数 (植数) = 152 * 112 = 17,024
   - 主草木百卉之植物，凝其形体。

### 4.2 第二级唱和：动植变化通数（289,816,576）
变数与化数再次全息唱和（动植再唱和），形成宏观物理宇宙之终极离散状态总数：
  变化通数 = 17,024 * 17,024 = 289,816,576
即：**二亿八千九百八十一万六千五百七十六**！

《观物篇六十一》赞曰：
> “日月星辰水火土石之变化通数二万八千九百八十一万六千五百七十六，谓之动植通数。暑变飞走草木之性，寒变飞走草木之情，昼变飞走草木之形，夜变飞走草木之体……夫分阴分阳，分柔分刚者，天地万物之谓也。备天地万物者，人之谓也。”

### 4.3 基础单音节细分唱和比率
在具体反切声韵中，实操按七声九音交错：
- **天以七唱**：天声实用 7，唱地音 152 位：
  天唱变数 = 7 * 152 = 1,064 变
- **地以九和**：地音实用 9，和天声 112 位：
  地和化数 = 9 * 112 = 1,008 化
- 两相叠合，交织出汉语音韵全图 3,840 局之音阶起伏。

---

## 第五章 声音体系与元会运世体系的宏大衔接

邵雍的声音体系绝非孤立的语音学，而是与元会运世在数学拓扑上完全同构的宇宙全息分形：

### 5.1 历法“开物闭物”与声律“日出寅入戌”的分形同构
在第一体系（元会）与第四体系（声音）之间，存在着惊人的数学对称性：

| 宇宙观测维度 | 第一体系：历法经天（元会大运） | 第四体系：声律经物（声音律吕） | 数理同构本源 |
| :--- | :--- | :--- | :--- |
| **周期起点** | 混沌未分于子中，一阳初动（复卦） | 冬至之元，五音之宫，六律黄钟居北 | 体之所起（冬至元） |
| **显相激活（开物）** | **寅会之中（第 27,000 年）**，天地交泰，草木人物始萌 | **日出寅时（平旦）**，声律萌发，开发音启 | 阳气出地，数始显行 |
| **有效繁衍期** | **寅、卯、辰、巳、午、未、申、酉、戌（8会半）**，文明活跃期 86,400 年 | **寅至戌（9个时辰 / 70刻）**，生物之数 264 日，天声 7、地音 9 运行 | 阳数显达，动植滋长 |
| **收敛归隐（闭物）** | **戌会之中（第 113,400 年）**，万物凋零，天地闭物 | **日入戌时（黄昏）**，目无所见，闭塞无声 | 阳入于地，数不行 |
| **冰封停歇期** | **亥、子、丑三会**，混沌寂然，无生命迹象（43,200 年） | **亥、子、丑三时**，日入于地，数隐不见（3个时辰） | “非数不行，有数不见” |

《观物篇第十》明言：“正音律数行至于七而止者，以夏至之日出于寅而入于戌，亥子丑三时则日入于地而目无所见，此三数不行者，所以比于三时也。故生物之数亦然，非数之不行也，有数而不见也。”  
**结论**：声音律吕在一天之内的发散与收敛，与元会运世在十二万九千六百年中的开物与闭物，遵循完全相同的比例常数（2/3 显行，1/3 隐闭）！

### 5.2 汉语言音韵与梅花易数（字占）的深层映射
在梅花易数体系中，有一条广为人知但前人鲜能索解的规则：**四字至十字起卦，按平上去入四声调声，平为1、上为2、去为3、入为4。**
本规格书从皇极第四体系彻底解开了该规则的本体论根源：
1. 平声属日（太阳，阳之阳，先天数1）；
2. 上声属月（太阴，阴之阳，先天数2）；
3. 去声属星（少阳，阳之阴，先天数3）；
4. 入声属辰（少阴，阴之阴，先天数4）。  
**梅花字占调声法，正是邵雍皇极第四体系天声四象在应用易学中的一阶直接降维投影！**

---

## 第六章 程序实现规格与数据结构设计

为将皇极第四体系落地为现代工业级代码，制定以下数据结构与计算规范：

### 6.1 数据结构定义（Python / Pydantic 模型）

```python
# coding: utf-8
from dataclasses import dataclass
from typing import List, Dict, Optional
from enum import Enum

class TianShengTone(Enum):
    PING = "平"  # 太阳 · 日
    SHANG = "上" # 太阴 · 月
    QU = "去"    # 少阳 · 星
    RU = "入"    # 少阴 · 辰

class DiYinMouth(Enum):
    KAI = "开"   # 太柔 · 水
    FA = "发"    # 太刚 · 火
    SHOU = "收"  # 少柔 · 土
    BI = "闭"    # 少刚 · 石

@dataclass(frozen=True)
class TianShengEntity:
    index: int               # 1 ~ 16
    char: str                # 代表汉字（如 多, 良, 千）
    tone: TianShengTone      # 平 / 上 / 去 / 入
    pishi: str               # 辟 / 翕
    is_usable: bool          # 是否在用数 (前7位为True, 虚位为False)

@dataclass(frozen=True)
class DiYinEntity:
    index: int               # 1 ~ 16
    char: str                # 代表汉字（如 古, 黑, 安）
    mouth: DiYinMouth        # 开 / 发 / 收 / 闭
    qingzhuo: str            # 清 / 浊
    is_usable: bool          # 是否在用数 (前9位为True, 虚位为False)

@dataclass(frozen=True)
class HuangjiSoundHarmonicResult:
    tian_sheng: TianShengEntity
    di_yin: DiYinEntity
    is_harmonic: bool        # 是否有效交唱 (非虚位)
    tian_chang_bian: int     # 天唱变数 (7 * 152 = 1064 中的贡献位)
    di_he_hua: int           # 地和化数 (9 * 112 = 1008 中的贡献位)
    tong_shu: int            # 动植变化通数 (289,816,576)
```

### 6.2 核心守恒不变式测试断言（Invariant Assertions）
在任何实现代码中，必须硬编码通过以下数论不变式：

```python
def test_huangji_sound_invariants():
    # 1. 体数与用数守恒
    TI_YANG = (10 + 10 + 10 + 10) * 4  # 160
    TI_YIN = (12 + 12 + 12 + 12) * 4   # 192
    assert TI_YANG == 160
    assert TI_YIN == 192
    
    YONG_YANG = TI_YANG - (12 * 4)     # 160 - 48 = 112
    YONG_YIN = TI_YIN - (10 * 4)       # 192 - 40 = 152
    assert YONG_YANG == 112
    assert YONG_YIN == 152
    
    # 2. 动植全数守恒
    ALL_NUMBER = TI_YANG * TI_YIN
    assert ALL_NUMBER == 30720
    
    # 3. 动数（变数）与植数（化数）守恒
    DONG_SHU = YONG_YANG * YONG_YIN
    ZHI_SHU = YONG_YIN * YONG_YANG
    assert DONG_SHU == 17024
    assert ZHI_SHU == 17024
    
    # 4. 万物变化通数守恒
    TONG_SHU = DONG_SHU * ZHI_SHU
    assert TONG_SHU == 289816576  # 二亿八千九百八十一万六千五百七十六
```

---

## 结论与后续演进路线

本规格书系统厘清了《皇极经世》第四体系的理论渊源、数理基模与计算法则：
1. 澄清了声音唱和体系作为**“空间物类场”**与元会运世**“时间历史场”**对偶并立的崇高学术地位；
2. 坚决遵从王植考订，剔除了祝泌附会的六十四卦与八宫杂说，确立了四象数理纯粹性；
3. 证明了“夏至日出寅入戌”与“元会开物于寅闭物于戌”的分形同构，为易学全息理论提供了严密的数理逻辑支撑；
4. 完成了数学公式、张量积递推与数据结构的工业化定义，为未来构建“皇极全息声音汉字音律引擎”奠定了完备的技术底座。