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

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

> **文档性质**：软件工程算法规格说明书（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
    )
```

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