引擎是怎么验证的
最后更新:
本站说,家居引擎复现了一份付费的专业风水评估报告,精确到每一个数字:27/27 个飞星宫位数字、32/32 项方位判定全部吻合。这是真的。但那只是一处住宅、一份报告,而且那份报告属于私人文件,不能公开。所以本页只展示能展示的部分:比对了什么、怎样算吻合、引擎对一处虚构住宅的完整输出(你可以自己重新运行),以及用别人公开发表的例子对同一批函数所做的核对。
简而言之
- 一处住宅,一份 2013 年的付费评估,出自一家机构。这是一次比对,不是一整套基准测试。
- 那份评估报告你没法自己核对;本页的其余内容,你都可以核对。
- 第 4 节列出引擎对一处虚构住宅算出的 27 个飞星数字和 32 项八宅判定,并逐项注明所依规则。只要页面上的表格与引擎重新运行的结果有出入,测试就会失败。
- 第 5 节用公开资料核对同一套运算:24 张公开发表的飞星盘共 648 个数字全部吻合;一首公开的八宅歌诀,在一个版本中 56 处全部吻合,在另一个版本中 54/56 处吻合。
1. 比对了什么
2013 年,本站作者向一家专业机构购买了一份针对一处住宅的书面风水评估报告,并把引擎的输出与它逐行比对。总数是 27 个飞星数字和 32 项八宅判定。本页按下面的方式计数,第 4 节用的也是同一种数法。
- 九宫飞星盘每个宫位有三个数字:运星、山星和向星。九个宫位乘以三个数字,共 27 个。
- 八宅按一个人的命卦,给八个方位各定一颗星。四个人、每人八个方位,共 32 项。
“吻合”是指对同一个宫位或方位,引擎给出的数字或星名与评估报告完全相同。没有容差,不做四舍五入,也没有部分得分。差一个数字就算不吻合。
不公开的内容:机构名称、执业者、房产以及与之相关的所有人,还有这份文件的任何一页、引文或图像。这是第三方就一处私人住宅出具的付费成果。
2. 引擎怎样得出每个数字
每个数字都来自一个引擎函数和一条规则。每个元运 20 年,从 1864 年起算,所以八运是 2004 年至 2023 年。
| 数字 | 引擎函数 | 规则 |
|---|---|---|
| 运星 | base_chart | 把元运数放进中宫,沿洛书路径顺飞:中宫、西北、西、东北、南、北、西南、东、东南。 |
| 山星 | natal_chart | 坐宫里的运星入中宫,再顺飞或逆飞。顺逆取决于这颗星自己所属卦中、与坐山同一元的那座山。 |
| 向星 | natal_chart | 规则相同,只是从向宫里的运星起飞。 |
| 用哪张盘 | natal_chart_from_degrees | 罗盘读数定出向山:二十四山,每山 15 度。偏离山中心 3 度以内用下卦盘;3 度到 6.5 度用替卦盘;离分界线不到 1 度时,把相邻的两张盘都列出来。 |
| 命卦 | ming_gua | 把出生年(以立春为界)的各位数字相加,直到只剩一位。男性用 11 减去这个数,女性用这个数加 4。结果为 5 时,男性改为 2,女性改为 8。 |
| 方位星 | youxing_stars | 把命卦的三爻与每个方位所属卦的三爻逐爻对比。哪几爻不同,就决定星名,见下表。 |
| 变动的爻 | 星 |
|---|---|
| 变上爻 | 生气 |
| 变中爻 | 绝命 |
| 变下爻 | 祸害 |
| 变上、中爻 | 五鬼 |
| 变上、下爻 | 六煞 |
| 变中、下爻 | 天医 |
| 三爻全变 | 延年 |
| 无 | 伏位 |
3. 这些说明不了什么
- 只有一处住宅。一处住宅只检验了可能出现的飞星盘中很小的一部分。
- 只有一家机构。这份报告是一位专业人士的成果。各家做法不尽相同,与其中一家一致,不等于与所有人一致。
- 只有一份文件。外人无法重复这次比对,因为别人看不到那份文件。
- 吻合不等于证明。两个来源给出同一个数字,只说明它们采用了同一套约定,并不说明这套约定描述的是真实的东西。各派之间也有分歧:有些流派对没有出卦的兼向仍然用下卦盘,而本引擎在超过 3 度后改用替卦盘。
- 只涉及运算。星数和方位名称吻合,并不能说明建立在它们之上的解读是否正确。
- 不涉及历法层面。八字排盘与商业排盘产品一致这另一项说法,不在本页讨论范围内。
4. 自己重算:一处虚构的住宅
本节中没有任何真实的房子。住宅、住户和户型都是为本页虚构的。你可以用自己的输入运行同样的函数,再对照结果。
| 输入项 | 取值 |
|---|---|
| 房屋正面朝向 | 256° |
| 所朝之山 | 庚 |
| 偏离山中心 | 1° |
| 朝向区间 | 正向 |
| 建成并入住年份 | 2016 |
| 元运 | 8 |
| 所用飞星盘 | 下卦 |
| 坐山 | 甲 |
| 向山 | 庚 |
| 格局 | 双星到坐 |
4.1 飞星:27 个数字
这张盘由三次飞星组成。山星从坐宫里的运星起飞,向星从向宫里的运星起飞。“参照山”就是决定每次飞行顺逆的那座山,见第 2 节。
| 数字 | 引擎函数 | 起飞宫位 | 起飞星 | 参照山 | 飞行方向 |
|---|---|---|---|---|---|
| 运星 | base_chart | 中宫 | 8 | 无 | 顺飞 |
| 山星 | natal_chart, _polarity_for | 震 东 | 6 | 戌 | 逆飞 |
| 向星 | natal_chart, _polarity_for | 兑 西 | 1 | 壬 | 顺飞 |
每个数字等于这次飞行的起飞星,加上或减去该宫位在洛书路径上的步数。结果超过 9 或小于 1 时,加上或减去 9,回到 1 到 9 之间。步数依次是:中宫 0、西北 1、西 2、东北 3、南 4、北 5、西南 6、东 7、东南 8。
| 宫位 | 步数 | 运星 | 山星 | 向星 |
|---|---|---|---|---|
| 中 中宫 | 0 | 8 + 0 = 8 | 6 − 0 = 6 | 1 + 0 = 1 |
| 乾 西北 | 1 | 8 + 1 = 9 | 6 − 1 = 5 | 1 + 1 = 2 |
| 兑 西 | 2 | 8 + 2 = 10 → 1 | 6 − 2 = 4 | 1 + 2 = 3 |
| 艮 东北 | 3 | 8 + 3 = 11 → 2 | 6 − 3 = 3 | 1 + 3 = 4 |
| 离 南 | 4 | 8 + 4 = 12 → 3 | 6 − 4 = 2 | 1 + 4 = 5 |
| 坎 北 | 5 | 8 + 5 = 13 → 4 | 6 − 5 = 1 | 1 + 5 = 6 |
| 坤 西南 | 6 | 8 + 6 = 14 → 5 | 6 − 6 = 0 → 9 | 1 + 6 = 7 |
| 震 东 | 7 | 8 + 7 = 15 → 6 | 6 − 7 = −1 → 8 | 1 + 7 = 8 |
| 巽 东南 | 8 | 8 + 8 = 16 → 7 | 6 − 8 = −2 → 7 | 1 + 8 = 9 |
4.2 八宅:32 项判定
四位虚构的住户。每人的命卦由第 2 节的命卦函数算出。
| 住户 | 性别 | 出生年 | 命卦 | 命组 |
|---|---|---|---|---|
| A | 男 | 1972 | 坎 | 东四命 |
| B | 女 | 1975 | 艮 | 西四命 |
| C | 男 | 2003 | 乾 | 西四命 |
| D | 女 | 2006 | 震 | 东四命 |
下表每个格子是第 2 节的方位星函数在该方位给出的星,星名下面是产生它的变爻情况。
| 方位 | 住户 A 坎 | 住户 B 艮 | 住户 C 乾 | 住户 D 震 |
|---|---|---|---|---|
| 坎 北 | 伏位 无 | 五鬼 变上、中爻 | 六煞 变上、下爻 | 天医 变中、下爻 |
| 艮 东北 | 五鬼 变上、中爻 | 伏位 无 | 天医 变中、下爻 | 六煞 变上、下爻 |
| 震 东 | 天医 变中、下爻 | 六煞 变上、下爻 | 五鬼 变上、中爻 | 伏位 无 |
| 巽 东南 | 生气 变上爻 | 绝命 变中爻 | 祸害 变下爻 | 延年 三爻全变 |
| 离 南 | 延年 三爻全变 | 祸害 变下爻 | 绝命 变中爻 | 生气 变上爻 |
| 坤 西南 | 绝命 变中爻 | 生气 变上爻 | 延年 三爻全变 | 祸害 变下爻 |
| 兑 西 | 祸害 变下爻 | 延年 三爻全变 | 生气 变上爻 | 绝命 变中爻 |
| 乾 西北 | 六煞 变上、下爻 | 天医 变中、下爻 | 伏位 无 | 五鬼 变上、中爻 |
4.3 户型:各房间落在哪个宫位
户型是一个宽 12 米、进深 9 米的长方形,上方为北,大门开在西墙上。每个房间落在罗盘上 45 度扇区包含它的那个宫位,从整个户型的中心往外看。
函数:assign_pie
| 房间 | 西边(米) | 东边(米) | 北边(米) | 南边(米) | 距中心的方位角 | 宫位 |
|---|---|---|---|---|---|---|
| 书房 | 0 | 4 | 0 | 3 | 306.9° | 乾 西北 |
| 卧室 2 | 4 | 8 | 0 | 3 | 0° | 坎 北 |
| 主卧 | 8 | 12 | 0 | 4 | 58° | 艮 东北 |
| 客厅 | 0 | 5 | 3 | 9 | 246.8° | 坤 西南 |
| 餐厅 | 5 | 8 | 3 | 6 | 90° | 中 中宫 |
| 卫生间 | 8 | 12 | 4 | 6 | 97.1° | 震 东 |
| 厨房 | 5 | 8 | 6 | 9 | 170.5° | 离 南 |
| 卧室 3 | 8 | 12 | 6 | 9 | 126.9° | 巽 东南 |
4.4 重新运行
上面的表格由一个脚本写出,脚本调用第 2 节列出的引擎函数。只要本页与重新运行的结果有出入,测试就会失败。这个脚本随引擎源代码一起提供。
python3 scripts/build_validation.py --check把本页与重新运行的结果对比。python3 scripts/build_validation.py --json打印它算出的全部数字。
5. 与公开例子核对
这些核对使用的是自带答案的公开资料。它们是 2026 年 10 月补做的,与 2013 年的比对是两回事。这些资料是现代刊印本,不是古籍原本;引擎也没有为了让它们通过而做过任何改动。
| 公开例子 | 引擎吻合 |
|---|---|
| 飞星盘,八运,全部 24 个向山 | 648/648 |
| 八宅歌诀,版本 1 | 56/56 |
| 八宅歌诀,版本 2 | 54/56 |
| 公开文字中的两个运盘数字 | 2/2 |
5.1 公开排盘工具给出的飞星盘
一个公开的风水排盘工具,为 24 个向山各给出了一张完整的八运盘,九个宫位里的运星、山星、向星都有。我们把每个页面与引擎对同一向山的下卦盘逐一对比,648 个数字全部吻合:24 张盘,每盘九个宫位,每宫三个数字。
这项核对的局限:来源是另一个程序,不是古籍。它只说明同一套约定的两种实现彼此一致。它只涉及下卦盘,没有检验兼向用的替卦盘。
| 页面 | 朝向范围 | 向山 | 格局 | 吻合 |
|---|---|---|---|---|
| S1 | 157.6°-172.5° | 丙 | 双星到坐 | 27/27 |
| S2 | 172.6°-187.5° | 午 | 双星到向 | 27/27 |
| S3 | 187.6°-202.5° | 丁 | 双星到向 | 27/27 |
| SW1 | 202.6°-217.5° | 未 | 旺山旺向 | 27/27 |
| SW2 | 217.6°-232.5° | 坤 | 上山下水 | 27/27 |
| SW3 | 232.6°-247.5° | 申 | 上山下水 | 27/27 |
| W1 | 247.6°-262.5° | 庚 | 双星到坐 | 27/27 |
| W2 | 262.6°-277.5° | 酉 | 双星到向 | 27/27 |
| W3 | 277.6°-292.5° | 辛 | 双星到向 | 27/27 |
| NW1 | 292.6°-307.5° | 戌 | 上山下水 | 27/27 |
| NW2 | 307.6°-322.5° | 乾 | 旺山旺向 | 27/27 |
| NW3 | 322.6°-337.5° | 亥 | 旺山旺向 | 27/27 |
| N1 | 337.6°-352.5° | 壬 | 双星到向 | 27/27 |
| N2 | 352.6°-7.5° | 子 | 双星到坐 | 27/27 |
| N3 | 7.6°-22.5° | 癸 | 双星到坐 | 27/27 |
| NE1 | 22.6°-37.5° | 丑 | 旺山旺向 | 27/27 |
| NE2 | 37.6°-52.5° | 艮 | 上山下水 | 27/27 |
| NE3 | 52.6°-67.5° | 寅 | 上山下水 | 27/27 |
| E1 | 67.6°-82.5° | 甲 | 双星到向 | 27/27 |
| E2 | 82.6°-97.5° | 卯 | 双星到坐 | 27/27 |
| E3 | 97.6°-112.5° | 乙 | 双星到坐 | 27/27 |
| SE1 | 112.6°-127.5° | 辰 | 上山下水 | 27/27 |
| SE2 | 127.6°-142.5° | 巽 | 旺山旺向 | 27/27 |
| SE3 | 142.6°-157.5° | 巳 | 旺山旺向 | 27/27 |
5.2 八宅歌诀
方位星是用一首歌诀教的,叫大游年歌,每个命卦一句。每一句依次说出其余七卦的星,从北方起顺时针,跳过它自己。有一个来源把其中一句解释得很清楚,下表把它读了出来。其余每一句我们都按同样的方式读。
| 方位 | 歌诀中的字 | 星 |
|---|---|---|
| 坎 北 | 六 | 六煞 |
| 艮 东北 | 天 | 天医 |
| 震 东 | 五 | 五鬼 |
| 巽 东南 | 祸 | 祸害 |
| 离 南 | 绝 | 绝命 |
| 坤 西南 | 延 | 延年 |
| 兑 西 | 生 | 生气 |
引擎从不读这首歌诀。它是按卦的爻线算出每一行的,所以这是一次真正的比对。我们比对了两个公开版本中的全部八句,两个版本都用简体字刊印。
| 起首卦 | 版本 1 | 吻合 | 版本 2 | 吻合 |
|---|---|---|---|---|
| 乾 | 乾六天五祸绝延生 | 7/7 | 乾六天五祸绝延生 | 7/7 |
| 坎 | 坎五天生延绝祸六 | 7/7 | 坎五天生延绝祸六 | 7/7 |
| 艮 | 艮六绝祸生延天五 | 7/7 | 艮六绝祸生延天五 | 7/7 |
| 震 | 震延生祸绝五天六 | 7/7 | 震延生祸绝五天六 | 7/7 |
| 巽 | 巽天五六祸生绝延 | 7/7 | 巽天五六祸生绝延 | 7/7 |
| 离 | 离六五绝延祸生天 | 7/7 | 离六五绝延祸天生 | 5/7 |
| 坤 | 坤天延绝生祸五六 | 7/7 | 坤天延绝生祸五六 | 7/7 |
| 兑 | 兑生祸延绝六五天 | 7/7 | 兑生祸延绝六五天 | 7/7 |
版本 1 与引擎在 56 处全部一致。版本 2 有两处不同,都在同一句里,它把两个方位的星对调了:
| 版本 | 句 | 方位 | 歌诀所说 | 引擎算得 |
|---|---|---|---|---|
| 2 | 离 | 震 | 天医 | 生气 |
| 2 | 离 | 巽 | 生气 | 天医 |
两个版本彼此不一致。引擎在这一句上的结果是按变爻规则算出的,与版本 1 相同。我们没有拿任何一个页面去对照古籍原本,所以不说哪个版本才是原文。
5.3 公开文字中的一句话
维基百科“Flying Star Feng Shui”条目写道:“In a Period-8 building that faces southwest, the number that locates in Facing Palace is number 5 whereas the number in Sitting Palace is number 2.”(八运的房子朝西南,向宫里的数字是 5,坐宫里的数字是 2。)引擎的八运运盘把 5 放在西南宫,把 2 放在对面的东北宫。两个数字都吻合。
6. 资料来源
均于 2026 年 10 月 11 日查阅。
- Skill On,“Feng Shui Calculator: Period 8”(英文),共 24 个朝向页面。5.1 节表格的第一列链接到每个页面。
- 易奇文化 (yiqibazi.com), "八宅大游年歌诀",2022 年 9 月 29 日。这是版本 1。
- 南虚子易学网 (nanxuzi.com), "他山之石:八宅风水之大游年歌",2020 年 3 月 27 日。这是版本 2,也是 5.2 节中那句示范读法的出处。
- 维基百科“Flying Star Feng Shui”(英文),其中“Rules and Procedures”一节和元运表。