描述 Description
简化约数博弈
两个人轮流在黑板上写一个不大于10的正整数。规定不准把已经写过的数的约数再写出来。谁最后没写的了谁就输了。问是先写的人必胜还是后写的人必胜,必胜策略是什么。
分析 Analysis
先写者有必胜策略。他可以先写下数字6,现在就只剩下4、5、7、8、9、10可以写了。把剩下的6个数分成三对,分别是(4,5)、(7,9)、(8,10),每一对里的两个数都不成倍数关系,且它们各自的倍数(如果出现过)必然是同时出现。因此不管你写什么数,我就写它所在的数对里的另一个数。
##########################################################################################
##########################################################################################
描述 Description
约数博弈
甲乙两个人玩一个博弈游戏。游戏初始状态包含1-n, 这n个正整数。
甲乙两个人轮流玩这个游戏。每轮游戏中,游戏者任意选择一个还存在的数,然后删掉它和它所有的约数。
谁最后没有数可删,谁就输掉了。他们都足够聪明,甲先开始,请分析谁有必胜策略?
Note:整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。一个数的约数必然包括1及其本身。任何正整数都是0的约数。
分析 Analysis
先手有必胜策略。这个证明不是构造性的,也就是说没有给出先手怎么下才能赢。
反证法:假设后手B有必胜策略,而先手A第一次取数1,B取了一个数x是必胜策略,然而A完全可以第一次取x(同时也必取了1)是必胜策略。故B必没有必胜策略。
不过lz有一种比较暴力的策略不知对否:将所有数据分成数对(除数1外每个数对都不是约数),对手取完一个数后,如果剩下的是奇数,则取一个合适的数让剩下的数可以重新分对,如果剩下的是偶数,则取一个合适的数(这个数的约数有奇数个),剩下的数仍可以重新分对。这样对手不管取哪个数,总有一个与对手取的数不是约数的数可以给你取。
变型:不准写数字1
考虑一个新的规则“不准写数字1”。如果加上这个新规则后先写者有必胜策略,那么这个策略对于原游戏同样适用(因为1是所有数的约数,本来就不能写);如果在新规则下后写者必胜,则原游戏中的先写者写下数字1,然后他就变成了新规则下的后写者。于是不管怎么样,先写者总是有必胜策略。
[博弈问题入门]
变型:约数和倍数博弈
给定的一些自然数,如 2,3,4,5,6,。。。,两人依次拿数,连同该数的约数和倍数一起拿掉,如拿2要连4,6一起拿掉;拿6要连带2,3一起拿掉。最后总有一人没法拿了(因为数都拿光了),就算输。
举例:2,3,4
先拿者不管怎样拿都是输。
先出2题:
题1:初始数据 2,3,4,5,6,7,8,9,10 共9个数字。
题2:初始数据 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 共17个数字。
问:先拿者赢还是输,如果赢的话,第一步怎样拿?
[智能博弈题]
##########################################################################################
##########################################################################################
描述 Description
Chomp!博弈(巧克力游戏)
有一个n*m的棋盘,每次可以取走一个方格并拿掉它右边和上面的所有方格。拿到左下角的格子(1,1)者输,如下图是8*3的棋盘中拿掉(6,2)和(2,3)后的状态。
分析 Analysis
结论:答案是除了1*1的棋盘,对于其他大小的棋盘,先手总能赢。
分析:有一个很巧妙的证明可以保证先手存在必胜策略,可惜这个证明不是构造性的,也就是说没有给出先手怎么下才能赢。
证明如下:如果后手能赢,也就是说后手有必胜策略,使得无论先手第一次取哪个石子,后手都能获得最后的胜利。那么现在假设先手取最右上角的石子(n,m),接下来后手通过某种取法使得自己进入必胜的局面。但事实上,先手在第一次取的时候就可以和后手这次取的一样,进入必胜局面了,与假设矛盾。