// ★★★★★ 【李广 —— 而这一次不是编号,是本表在 41–63 里挑了哪一个数】 import { DYNASTIES, computeRank, computeAxes } from '../src/dynasties.js'; const han = DYNASTIES.find((d) => d.id === 'han'); const jg = han.channels.find((c) => c.id === 'jungong_han'); const li = { axes: computeAxes([]), wang: 0 }; // ★ 李广:renwu.js 双证 subs=[] ⇒ 六轴全 40 console.log('★ 李广 六轴:', JSON.stringify(li.axes), ' wang=0\n'); console.log('汉三条闸:', han.channels.map((c) => `${c.name}=${JSON.stringify(c.gate)}`).join(' '), '\n'); console.log('【把军功的闸 wu:55 换成它等价类 41–63 里的每一个数】'); console.log(' ⚠ 每一个都是【同一道闸】:六轴取值只有 40/63/73/79/83,(40,63] 之间没有任何 profile。\n'); console.log(' wu 闸 李广被判「最接近」的那条路 打平的 他的军功缺口'); console.log(' ' + '─'.repeat(78)); const seen = new Map(); for (const n of [41, 45, 50, 54, 55, 56, 60, 63]) { jg.gate.wu = n; const r = computeRank(li, 'han'); const gap = n - 40; console.log(` ${String(n).padEnd(8)} ${(r.nearest || '-').padEnd(34)} [${(r.nearestTie || []).join('、').padEnd(18)}] 差 ${gap}`); seen.set(r.nearest, (seen.get(r.nearest) || 0) + 1); } jg.gate.wu = 55; console.log('\n★★★ 同一道闸,8 个写法 →', [...seen].map(([k, v]) => `${k}: ${v} 次`).join(' ')); console.log('★★★★【「军功不是最接近的那条」不是一个关于李广的事实,是【本表在 41–63 里挑了 55】这个事实。】'); console.log(' ⇒ 而《史記》卷109 双证钉着:他的实职【就是靠军功挣的】。');