什么行业最需要网站建设wordpress过滤显示插件下载
2026/4/8 15:06:17 网站建设 项目流程
什么行业最需要网站建设,wordpress过滤显示插件下载,沈阳自助建站模板,wordpress调用置顶文章参考nim游戏 尼姆博弈 是一个两人博弈。两名玩家轮流从若干堆物品中拿取一定数量的物品#xff0c;每次操作需#xff1a; 选择某一堆。从该堆中至少拿 1 个#xff0c;至多拿完全部物品#xff08;不能不拿#xff09;。 游戏可以设置“拿到最后一个物品获胜”或“拿到…参考nim游戏尼姆博弈 是一个两人博弈。两名玩家轮流从若干堆物品中拿取一定数量的物品每次操作需选择某一堆。从该堆中至少拿 1 个至多拿完全部物品不能不拿。游戏可以设置“拿到最后一个物品获胜”或“拿到最后一个物品失败”。视频规则 中游戏的等价关系不变量是nim 和是否为 0详细解释。定义 1nim 和所有堆的异或和定义为nim 和。例子对状态(3, 5, 7)nim 和计算为nim(3,5,7) 3 ⊕ 5 ⊕ 7 1注可用浏览器的 JS 计算。约定 1状态分类为了简化证明将硬币状态分成 5 类P、Q、R 明显可判定平衡态 S 与非平衡态 F 是主要讨论对象。5 类状态的“标准型”指该类形式最简单的状态。状态类定义标准型平衡态 Snim 和为 0且不是 P、Q、Rk₀(x,x), x1k₁(1,2x,2x1)x⊕x01⊕2x⊕(2x1)0非平衡态 Fnim 和不为 0且不是 P、Q、R(1,2)奇堆纯 1 态 P仅有奇数堆 1(1)偶堆纯 1 态 Q仅有偶数堆 1(1,1)仅 1 堆态 R仅有一堆数量 1(2)约定 2必胜态与必败态P1P、Q、R 的结果显然无需讨论。P2必胜态若参与者 A 构造状态 U 后存在必胜走法则 U 为 A 的必胜态。P3必败态若参与者 A 构造状态 U 后无必胜走法则 U 为 A 的必败态。P4状态 K₀ (x,x) | x1 是平衡态也是必胜态作为 S 类标准型。P5参与者 A 为平衡态构造者。P6最高位、s 位等均指二进制位。P7状态 (s) 表示只有一个 s 个硬币堆其他堆为 0。状态 (s,t) 表示只有两堆分别有 s 和 t 个硬币其他堆为 0。P8并堆状态间的一种运算用 ⊕ 表示nim((s) ⊕ (t)) s ⊕ t。结论平衡态 ⊕ 平衡态 平衡态非平衡态 ⊕ 平衡态 非平衡态定理 1平衡态是必胜态非平衡态是必败态不论规则是“拿到最后一个赢”还是“拿到最后一个输”都成立。记住拿成平衡态者获胜。T1K₀ 是平衡态K₀ (0,0,…,x,x)因为 nim(K₀) x ⊕ x 0所以 K₀ 是平衡态。T2K₀ 是必胜态下一步 B 拿后的状态为 (m,X)分类讨论m规则A 拿法结果0拿最后一个赢A 把 X 堆全拿走A 赢0拿最后一个输A 把 X 堆剩 1 个A 赢1拿最后一个赢A 把 X 堆剩 1 个A 赢1拿最后一个输A 把 X 堆全拿走A 赢1拿最后一个赢A 把 X 堆剩 m 个回到 P2 步骤1拿最后一个输A 把 X 堆剩 m 个回到 P2 步骤因硬币数严格递减总会结束于上表绿色情况。T3平衡态的下一个状态一定不平衡设平衡态 nim 和为 0从第 j 堆拿后剩 m 个t ⊕x j x_jxj​ m, t0则下一状态 nim 和 t 0不平衡。T4不平衡态的下一状态可平衡也可不平衡设不平衡态 t0其最高位为 s存在某堆 x_j 的第 s 位为 1则可以通过调整 x_j 堆的数量拿成平衡A 拿剩 t ⊕x j x_jxj​个使 nim 和变 0拿成不平衡A 拿走该堆小于 s 位的部分使 nim 和 s 位保持不平衡T5存在拿法使构造 S 的 A 最终获胜必胜表规则必胜态必败态拿最后一个赢K₀, S, QP, F, R拿最后一个输K₀, S, PQ, F, RA 可通过拿到 K₀、P 或 Q 获胜B 最终走向必败态 F1 或 F2。T6只要 A 尽可能保持平衡B 必经 F1 或 F2F1 (1,1,…,1,m), m1, nim0F2 (0,0,…,x,m), x,m1, nim0, x≠m硬币有限最终状态必终结于 K₀ 或 F2。推论 1K₀、K₁ 是必胜态平衡态的并堆也是必胜态因异或运算难口算推论可快速判定大多数状态是否必胜。平衡态构造技巧口诀从x j x_jxj​堆拿剩x j x_jxj​⊕ t 个直到 P、Q、R 状态其中 t 为 nim 和x j x_jxj​为与 t 最高位相同的堆。技巧总结技巧说明技巧1K₀ (x,x)技巧2K₁ (1,2x,2x1)技巧3奇数个奇堆不平衡只看个位技巧4从x j x_jxj​堆拿剩x j x_jxj​⊕ t 个直到 P,Q,R 状态需要大量异或计算技巧5平衡状态下随便只拿一个技巧6并堆定理技巧7a 是最大堆将 a 堆剩下 b^c技巧8(a^b^c).toString(2).toString(2)可以通过如下脚本确定如何拿硬币/** * 状态s下,如何拿硬币 * param s {Array[number]} - 输入的数字数组 * return {[number,number,number]} - 返回一个包含三个数字的数组 * 状态s的nim和 * xj堆的数量 * xj堆剩下的数量 */functionnim(s){//计算状态s的nim和constts.reduce((acc,cur)acc^cur,0);letxjMath.max(...s);//必败态,就从最大堆拿一个if(t0){return[t,xj,xj-1];}//找出xj堆for(letitofs){if((it(t.toString(2).length-1))11){xjit;break;}}//xj堆剩下的数量return[t,xj,xj^t];}/** * 状态s的下一个最佳状态 * param s {Array[number]} 当前状态 * return {Array[number]} 下一状态 */functionm(s){sArray.isArray(s)?s:[...arguments];const[t,xj,nextXj]nim(s);letflag0;letnextSs.map((it){if(flag0itxj){flag1;returnnextXj;}else{returnit;}});if(t0){thrownewError(可能会输:nextS.toString());}returnnextS;}m(3,5,7)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询