标签:xor 大于 不可 完成 ... 策略 二进制 自己 个人
问题一:有n堆物品各若干,两人轮流从某一对取任意多物品,规定每次至少取一个,多者不限,最后取光者胜利
用(a,b,c)表示局势,若a xor b xor c==0,那么(a,b,c)为奇异局势,面对奇异局势必败。若(a,b,c)为非奇异局势,则只要将c变为a xor b即变成奇异局势
若a1 xor a2 xor a3 ... == 0 ,则称(a1,a2,a3......)为T态(利他态),反之称S态(利己态)
定理1:S->T,只要将某数 - x 即可
证明:设 c = a1 xor a2 xor a3 ... xor an > 0,且c的第最高位(二进制)1为p位,那么必存在at,其第p位也是1,令x=at xor c < at
那么把原式的at 换成 x ,原式 = a1 xor a2 xor a3 ... x xor ... an = a1 xor x2 ... xor an xor c = 0; S->T转换完成
定理2:T->S,任何操作
证明:反证法:若 c = a1 xor a2 xor a3 ... xor an = 0;
且 c‘ = a1 xor a2 xor a3... at‘ xor ... an = 0;
则 c xor c‘ = 0; 但是c xor c‘ = at xor at‘ !=0 矛盾
定理3:S必赢
证明:先手S->T(定理1),后手必有T->S(定理2),所以先手必将局势控制在S态
定理4:T必败
证明:定理(3)
问题二:若某堆数量为1,则称孤单堆,若大于1,则为充裕堆。每个人 轮流在一堆中取若干根,最后取完为负
定理:显然不存在T1,充裕堆不可能一次消去两个
定理5:S0必败,T0必胜
证明:S0即是奇数个孤单堆,每次只能取一根,每次第奇数根都由自己取,第偶数根都由对方取,所以必败
定理6:S1态必胜
证明:先手S1->S0,后手必败(定理5)
定理7:S2≠>T0
证明:充裕堆不可以一次消去两个
定理8:S2->T2
证明:S->T(定理1),不可能转换成T0(定理7),所以转换成T2态
定理9:只有T2->S2/S1
证明:T->S(定理2),不可能是S0
定理10:S2 必胜
证明:先手S2->T2(定理8),必有T2->S2/S1(定理9),所以先手可以将状态控制在S2,或者变成S1(必胜态)
定理11:T2必输
证明:定理10
总结:第一题(最后取则胜)策略,先手将S1变为T0,那么每次轮到先手都是S0(奇数孤单堆),则必取最后一堆:
S2->T2->S2->T2.......T2->S1-------------->T0->S0->T0->S0->T0....->S0->T0(全0)
第二天(最后取则败)策略,先手将S1变为S0,那么每次轮到先手都是T0(偶数孤单堆),则对方必取最后一堆
S2->T2->S2->T2.......T2->S1-------------->S0->T0->S0->T0....->S0->T0(全0)
标签:xor 大于 不可 完成 ... 策略 二进制 自己 个人
原文地址:https://www.cnblogs.com/zsben991126/p/10202023.html