Normalize results JSON to LF (content identical to the Windows run), add close-ayanamsa N4 supplement, record acceptance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
12 KiB
生时校正「纳迪秒级」证伪(2026-10-05,BUG-1240)
任务书
docs/tasks/TASK-rectification-nadi-seconds-research-20261005.md。离线研究,生产代码没有改。 数据:references/real_case_calibration/minute_rectification_holdout_v5.json(77 例公开 Rodden AA,244 件日精度事件)。默认岁差 Raman、交点 mean。 规则在跑数之前单独提交:57480db324f1602cfc422ff8c774d0d6e2113af6。文件docs/research/nadi_seconds_preregistration_2026_10_05.json。 结果:docs/research/nadi_seconds_results_2026_10_05.json。Swiss Ephemeris 2.10.03。PYTHONHASHSEED=0。看过结果之后没有改规则、阈值或种子。
1. 结论
| 项 | 过门 | 关键数字 | 对照 |
|---|---|---|---|
| N1 拟合率 | 否 | 6 项里 1 项达到门槛:第 4 层对「日期平移」高 0.090,p = 0.0116。另外 5 项没有 | 日期平移,以及把日期换到别的例子上 |
| N2 留出一件 | 否 | 33 例。留出事件比随机秒高 0.041,95% 区间 −0.021 到 0.101 | 随机秒。安慰剂日期的区间也跨过 0 |
| N3 找回记录分钟 | 否 | ±10:纳迪 5/77,同一次回放的生产头名 25/77,提升 −0.260,区间整个在 0 下面 | 真值仍在交付区间内 76/77 |
| N4 噪声地板 | 触发文案禁令 | 只换岁差,第 5 层有 86%–92% 的日事件换主星,等分 D150 有 73/73 例换段 | 时间和地点写入下表,不单独当方法门 |
| N5 D150 结构 | 否 | 4 项都不达到门槛。按描述文字比对经历:blocked,仓库里没有可合法使用的原文 | 同 N1 的两种安慰剂 |
不立实现单。第 4 层、第 5 层和 D150 不接进校正计分。BUG-1240 记为 closed_by_design。
对外不能说秒级。N1–N3 没有过门,而且 N4 已经越过预先登记的 20% 线:换一种岁差算法,秒级记号就大面积变掉。
2. N0 底座
五层小运走生产递归(大运时间轴后再切四次),前三层与主链逐事件对账。77 例、964 件事件,不一致 0。等分 D150 用 calc_custom_varga(N=150)。古典「动宫顺排、固宫逆排、变宫从中段起排」标成 variant_unverified,不参与过门。
记录分钟:52 例是 5 的倍数,25 例不是。日精度事件 244 件;不少于 3 件的 43 例,不少于 4 件的 33 例,不少于 5 件的 19 例,0 件的 4 例。记录里没有秒。真值分钟的拟合率是该分钟 0–59 秒的平均。非 5 倍数那一组仍然只知道分钟,不知道秒。
3. N1
样本是预先登记的 43 例,两种安慰剂都在。拟合率是「这一秒解释了多少件日精度事件」除以事件数。差是真值分钟的平均减去安慰剂日期在同样 60 秒上的平均。整例符号翻转 9999 次。过门要均值大于 0,并且精确 p < 0.05。六项都要达到。
| 规则 | 对照 | 真值分钟 | 安慰剂 | 差 | 窗口平均 | p | 过门 |
|---|---|---|---|---|---|---|---|
| 第 4 层属于目标宫主 | 日期平移 | 0.259 | 0.169 | +0.090 | 0.214 | 0.0116 | 达到 |
| 第 4 层属于目标宫主 | 跨例换日期 | 0.259 | 0.221 | +0.038 | 0.214 | 0.1476 | 否 |
| 第 5 层属于目标宫主 | 日期平移 | 0.221 | 0.216 | +0.005 | 0.229 | 0.3794 | 否 |
| 第 5 层属于目标宫主 | 跨例换日期 | 0.221 | 0.225 | −0.003 | 0.229 | 0.5526 | 否 |
| 五层里至少两层命中 | 日期平移 | 0.329 | 0.339 | −0.009 | 0.325 | 0.6338 | 否 |
| 五层里至少两层命中 | 跨例换日期 | 0.329 | 0.318 | +0.012 | 0.325 | 0.3485 | 否 |
第 5 层在真值分钟上的拟合率(0.221)低于 ±10 分钟粗网格的平均(0.229)。记录中的那一分钟,并不比窗口里随便一秒更常被第 5 层解释。
粗网格上能解释全部日精度事件的秒所占比例:第 4 层 0.0017,第 5 层 0.0047,至少一层 0.145,至少两层 0.011。严格规则并不是「几乎每一秒都能解释全部前事」。失败的原因是真值分钟并不比安慰剂更高。
43 例里,分钟为 5 的倍数的有 31 例,其余 12 例。这是描述,没有单独做检验,也不能拿来过门。第 5 层真值分钟拟合率:5 的倍数 0.240,其余 0.171。其余那 12 例的真值分钟(0.171)低于它自己的窗口平均(0.199)。
探索项 B3 / B4 / B5 不参与过门,数字在结果 JSON 的每例记录里。
4. N2
33 例、每例至少 4 件日精度事件。留一件,用其余事件在粗网格上取最高分,并列全留。再看被留出的那一件在这些秒上被第 5 层解释的比例,减去同样多的随机秒。
相对随机秒:平均高 0.041,95% 区间 −0.021 到 0.101。相对安慰剂日期:平均高 0.026,区间 −0.037 到 0.087。过门只看随机秒,区间下界要大于 0。没有达到。
5 的倍数 24 例,差的平均 0.047;其余 9 例,差的平均 0.024。两组都没有单独过门。
5. N3
命中的定义预先写死:并列第一的每一个偏移都要落在限制里。空并列算未命中。没有日精度事件的 4 例算未命中。
单独用第 5 层排序(不参与过门)
±10 分钟、每 5 秒一格。全部并列都落在记录时间 60 秒内:0/77。落在 120 秒内:2/77(0.026),其中 5 的倍数那组 0.038,另一组 0。同一网格上均匀抽一格,60 秒内的期望是 0.104,120 秒内是 0.203。已发表的引擎先验头名是 0.18。并列数的中位是 8;有 23 例超过 25 个并列,这已经塞不进 60 秒那一段。
六题之后的交付区间里再排序(过门)
沿用六题回放的前半段:六道选择题,不注入后面的引导窗口。区间内按 1 秒用第 5 层重排。回放 77 例没有报错。
| 半径 | 真值在区间内 | 生产:全部并列都在 1 分钟内 | 纳迪:全部并列都在 60 秒内 | 提升 | 95% 区间 | 宽度中位 |
|---|---|---|---|---|---|---|
| ±10(过门) | 76/77 | 25/77(0.325) | 5/77(0.065) | −0.260 | −0.377 到 −0.143 | 13 分钟 |
| ±30(只报告) | 76/77 | 24/77(0.312) | 0/77 | −0.312 | −0.416 到 −0.208 | 33 分钟 |
| ±60(只报告) | 76/77 | 13/77(0.169) | 0/77 | −0.169 | −0.260 到 −0.091 | 69 分钟 |
±10 上,5 的倍数那组:生产 0.288,纳迪 0.058。另一组:生产 0.400,纳迪 0.080。两组都是纳迪更低。
已发表的 ±10 成绩单是:引擎先验头名 0.18,六题回放头名 0.64,簇头名 0.68,真值在区间内 76/77,宽度中位 15 分钟(docs/research/holdout_v5_build_2026_09_29.md)。本轮真值覆盖同为 76/77。头名没有复现成 0.64。本轮的生产对照要求每一个并列分钟都在 1 分钟内;线上网格每 2 分钟一格,这等于「唯一头名就是记录的那一分钟」,得到 25/77。已发表的 0.64 是簇代表分钟的头名。宽度中位是 13 分钟,已发表是 15。按预登记,不把 25/77 改写成 0.64。过门比较的是同一次回放里的纳迪和生产,纳迪更低。
6. N4 噪声地板
73 例至少有一件日精度事件。第 4、第 5 层按事件加权。等分 D150 按例子计。没有日事件的 4 例不在这张表里。
| 扰动 | 第 4 层事件变化 | 第 5 层事件变化 | 等分 D150 换段的例子 |
|---|---|---|---|
| Raman → Lahiri | 0.873 | 0.857 | 73/73 |
| Raman → KP | 0.848 | 0.922 | 73/73 |
| Raman → True Chitra | 0.926 | 0.885 | 73/73 |
| 出生时间 −15 秒 / +15 秒 | 0.107 / 0.115 | 0.607 / 0.598 | 12/73 / 29/73 |
| 出生时间 −30 秒 / +30 秒 | 0.213 / 0.213 | 0.820 / 0.828 | 43/73 / 48/73 |
| 出生时间 −60 秒 / +60 秒 | 0.418 / 0.393 | 0.918 / 0.902 | 70/73 / 72/73 |
| 出生地向东 / 向西 10 公里 | 0 / 0 | 0 / 0 | 46/73 / 43/73 |
交点从 mean 改成 true:73 例的月亮和上升都没变,罗睺都变了,第 5 层事件变化率是 0。小运只看月亮,这与预期一致。
文案禁令看三次换岁差。三次的第 5 层事件变化率都大于 0.20,等分 D150 的例子变化率都是 1。禁令成立。±15 秒已经让大约六成日事件换掉第 5 层主星。东西方向移 10 公里不动第 5 层,但大约六成例子的等分 D150 会换段。
7. N5
等分 D150 的上升星座宫主。样本仍是 43 例,对照仍是两种安慰剂。
| 规则 | 对照 | 真值分钟 | 安慰剂 | 差 | p | 过门 |
|---|---|---|---|---|---|---|
| 宫主属于目标宫主 | 日期平移 | 0.272 | 0.272 | 0 | 1 | 否 |
| 宫主属于目标宫主 | 跨例换日期 | 0.272 | 0.272 | 0 | 1 | 否 |
| 宫主出现在五层小运里 | 日期平移 | 0.476 | 0.451 | +0.025 | 0.2224 | 否 |
| 宫主出现在五层小运里 | 跨例换日期 | 0.476 | 0.490 | −0.014 | 0.6411 | 否 |
第一条规则只用出生那一秒的盘,不用事件日期,所以两种改日期的安慰剂和真值相同。这是这条规则的结果,不是跑数之后改出来的。按描述文字比对经历保持 blocked。
8. 对外口径草稿
校正给你一个时间范围。你答完现在这几道题,范围里往往还剩大约一刻钟;你记得的那一分钟大多还在这个范围里,这些分钟分不出先后。我们拿时间记录到分钟的公开例子核对过:用更细的小运去挑秒,并不比把事情的日期挪开更准,也没有把范围收到你记录中的那一分钟。出生时间差半分钟,或者换一种岁差算法,这种细记号就会变。所以校正只说到现在的方法能分开的范围,不把结果说成秒级。
草稿对照 frontend/docs/VOICE.md:直接对「你」说,不点名其他产品,不写秒级准确率。没有改 VOICE 文件本身。
9. 复现
export PYTHONHASHSEED=0
python scripts/research/nadi_seconds_run.py
预登记、库、跑数脚本、数据集的 sha256 写在结果 JSON 开头和结尾。本轮分别是 dc012dd2b287b28ac2eefb75d5b9050e7788cb09d0064639878a37753ee8c2d3、ba170f3a0476fc41b3be8ac9f035d2f82575006753eb14992ccf124132be0f94、3c1af919408c637eead6e43252f6696beec73cb66480d8138a9075d3a8fb8ed6、ab365a3e3f4953d4b538f2c0889dc98ab89444a28340c3a7b29e2a864cdd687a。同一命令再跑一次,两份结果的 SHA-256 都是 4f1569c3e8794e0d2c35d244d32b3896e47cf8a1f7d03d16ce01d3f07b51ec69,逐字节一致。
10. 验收补充(Claude 2026-10-05,事后,不参与过门)
复跑:在 Linux 上用 Python 3.13 跑同一条命令,耗时约 10 分钟。
- 结果与执行方提交的 JSON 逐字段比对,差异为 0。
- 执行方的文件是在 Windows 上写出的,换行符是 CRLF,所以原来记的 SHA-256
4f1569c3…只在 Windows 上成立。 - 已把入库文件换成 LF 版本。两份文件去掉 CR 之后,SHA-256 都是
d64006f3430f5d62c084c51ba3245ac8fe9b90ef45f2b2f09ff3eda40c23789b。 - 预登记、库、跑数脚本、数据集四个输入的哈希,与上文 §9 记录的一致。
N4 补充:预登记里的岁差对比都以 Raman 为起点,而 Raman 和其他三种相差约 1.4°。下面补测三种彼此很接近的岁差。脚本与 N4 相同,记录时间相同,样本是至少有一件日精度事件的 73 例。
| 换岁差 | 月亮相差(角分,中位) | 第 4 层事件变化 | 第 5 层事件变化 | 等分 D150 换段 |
|---|---|---|---|---|
| Lahiri → KP | 5.81 | 0.893 | 0.885 | 29/73 |
| Lahiri → True Chitra | 0.83 | 0.570 | 0.939 | 4/73 |
| KP → True Chitra | 4.98 | 0.910 | 0.848 | 25/73 |
月亮只差不到 1 角分(Lahiri 与 True Chitra),第 5 层主星就有 94% 的日事件跟着换。可见即使是同一派系里的两种岁差算法,Prana 层的结论也对不上。§1 的文案禁令不依赖 Raman 这个特例,结论不变。