第一题比较简单,可以推广到有n根火柴每人可取1到m根
若n % ( m + 1 ) == 1则先取必败,否则必胜,这个比较好证明
很简单可以证明当火柴数为1时先取必败,然后火柴数为m + 1时,无论先取的人怎样取,假定取x个,那么第二个人取m - x个,即可只剩一个留给对方。这样一直下来,如果用D( x ) = 1表示当留有x个火柴时先取必败,那么
D( 1 ) = 1
D( m + 2 ) = 1
D( 2m + 3 ) = 1
........
在这道题的情况就是
D( 1 ) = 1
D( 4 ) = 1
D( 7 ) = 1
.........
所以刚开始这些情况是必败的,换言之,如果刚开始不是这种情况,则先取的人可以取n % ( m + 1 ) - 1个(注意n % ( m + 1 ) == 0的情况,这是应该是取m个),就可以转化成上述令对手必败的情况。
第二题比较麻烦
我这里正好有一个别人写的
只有一堆时,无论有多少,先取者都可以一次性全部取走,所以必胜。
(1,1)时,显然先取者必败。
(1,2)时,先取者必胜,他可以在2那一堆中取1个,于是变成(1,1),但这成为上一种情况了,于是接下来取的人必败,亦即先取者必胜。
(1,3)时,先取者必胜。他可以在3那一堆中取2个&#x