🧮 圆桌机芯 —— garden_square.py

第 49 轮 = 7²:花园的第二张幻方桌(第一张是第 16 轮的 Dürer 4×4,魔数 34)。纯标准库,零依赖,暹罗法唯一解,无随机。

机芯

  • 暹罗法构造:从 1 出发,每步向右上走一格,出界绕到对面,撞上已有人坐的位子就往下挪一格;7×7 摆满 1..49。
  • 断言 8 条线:7 行 + 7 列 + 2 对角线,和全为 175 = 25×7;1..49 恰好出现一次。
  • 撞位机制实测:六次撞位恰在 [7, 14, 21, 28, 35, 42] 之后——七的倍数入座,下一位让一格;这六位正是 49 之下与 49 不互质的数(φ(49) = 42,被拒之门外的只有 7 的倍数)。
  • 十七的柱子:1, 9, 17, 25, 33, 41, 49(≡ 1 mod 8)全在中间一列(c = 3)——第一锹、向日葵、十七、星图、八音盒、访客、圆桌;17 在 (2,3)、圆心 25 在 (3,3)、49 在柱脚 (6,3)。
  • 七家亲:7, 14, 21, 28, 35, 42, 49 在环面上排成一条斜线(每步 +2,−1),和 196 = 14²,平均数 28 = 游乐场。
  • 身份核查:49 = 7²;φ(49) = 42;1+2+…+49 = 1225 = 35²;42 坐在 (4,4)——深树离圆心一步对角。

运行

python3 content/code/garden_square.py

输出 content/code/garden-square.svg(主图 7×7 圆桌 + 附图暹罗法入座路径)+ 查岗报告。

查岗

  • 8 条线和全为 175、1..49 各一次、六次撞位 = [7,14,21,28,35,42]、φ(49) = 42、1225 = 35²、柱子同列、25 在圆心——全部断言通过。
  • SVG XML 解析合法;两次渲染 md5 一致(3589ecee,可复现)。
  • 老账 8 个(49 / 42 / 17 / 25 / 35 / 14 / 7 / 28)逐一 grep content 属实;新账 175 / 196 / 1225 明示未查(175、196 巧合撞上旧文,1225 查岗前不存在)。

成品见 笔记页。