一句话
东西一直在变的时候,去找那个不变的量。 如果起点和终点的这个量不一样,那就永远到不了——不管走多少步、怎么走。
-
开始:1 个负号 只有一个 −1。目标是 0 个。看起来只差一点点。
1 个负号
-
翻第 2 行
-
再翻第 1 列
-
一般的一步
-
所以做不到
这一章有三件工具:不变量(证明到不了)、只降不升的量(证明一定会停)、倒推(找游戏的必胜走法)。
第 1 站 · 不变量要自己挑
把方阵换成 3×3,负号放在正中间。
先猜后证
3×3 的方阵,只有正中间是 −1。翻转整行或整列,能变成全是 + 吗?“负号个数的奇偶”在这里还是不变量吗?
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
一行只有 3 个数:k 个负号变成 3−k 个,改变了 3−2k,是奇数。原来的不变量失效了。
在追踪器里把候选的量一个个试过去。哪个活了下来?它为什么不变?
提示:任何一行、任何一列,和左上角的 2×2 小方块要么不相交,要么恰好有 2 格在里面。
一行或一列穿过左上角的 2×2 小方块时,恰好穿过其中 2 格;两个数同时变号,乘积不变。这个小方块里四个数的乘积一开始是 −1(中心那格在里面),而全 + 时是 +1。不变量没有现成的,要看着操作去设计。
第 2 站 · 黑板上的数
黑板上写着 1,2,3,4,5,6。每次擦掉两个数,写上它们的差。
先猜后证
一直做到只剩一个数。这个数可能是 0 吗?
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
擦掉 a、b 写上 ∣a−b∣:总和减少了 a+b−∣a−b∣,也就是两数中较小者的 2 倍——偶数。所以总和的奇偶不变。开始时 1+2+⋯+6=21 是奇数,最后剩下的那个数也是奇数,不会是 0。
自己玩几遍,每次换一种擦法,在追踪器里验证。
顺便点一下“黑板上有几个数”:它不是不变量,但每步恰好少 1——所以恰好 5 步之后一定结束。
换一条规则:擦掉 a、b,写上 a+b+ab。这次连“最后剩几”都被不变量钉死了。
玩两遍,用不同的顺序。最后的数一样吗?在追踪器里找出那个不变的量。提示:a+b+ab+1=(a+1)(b+1)。
第 3 站 · 翻杯子
先试五六步。再到追踪器里找一个不变的量。
每次翻 4 个杯子:如果其中有 j 个原来口朝上,翻完后朝上的个数改变了 (4−j)−j=4−2j,是偶数。朝上的个数一开始是 7,永远是奇数,到不了 0。
结论:朝上的个数奇偶不变,7 个杯子永远翻不完 ← 还成立吗?
每次翻 4 个。追踪“朝上的个数是奇是偶”,无论怎么翻它都是“奇”。
改成每次翻 3 个。奇偶每一步都在变,不变量没了——这时候反而做得到。最少几步?
3 步就够:比如先翻第 1、2、3 个,再翻第 3、4、5 个(第 3 个又翻回朝上),最后翻第 3、6、7 个。2 步不够,因为 2 步最多翻 6 个杯次,而 7 个杯子每个至少要翻一次。
第 4 站 · 一定会停下来
有的问题问的不是“能不能到”,而是“会不会没完没了”。这时要找的是一个每一步都严格变小、又不能小于 0 的整数。
“逆序对”:一对人,高的排在矮的左边。先随便换,再回到开头换一种顺序。交换的总次数变了吗?
交换相邻的一对“左高右矮”:这一对不再是逆序对;而其他任何一对人的左右关系都没有变。所以逆序对恰好少 1。它是非负整数,不可能无限地减下去——过程一定停止,而且恰好走“开始时的逆序对数”那么多步,和你换的顺序无关。
第 5 站 · 游戏:从终点往回推
21 颗石子,两人轮流拿,每次拿 1、2 或 3 颗,拿到最后一颗的人赢。先和电脑下一盘——它不会犯错。
输了不要紧。打开“显示必胜 / 必败位置”,再下一盘。
-
剩 0 颗 轮到你,可是一颗也没有了——最后一颗是对手拿的。剩 0 颗时,轮到谁谁输。 记作“败”。
0: 败
-
剩 1、2、3 颗
-
剩 4 颗
-
剩 5、6、7 颗
-
规律
规则一变,必败位置也跟着变,但推法不变。
先猜后证
改成每次只能拿 1、3 或 4 颗(不能拿 2 颗),一共 14 颗。你想先走还是后走?
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
从 0 往回推:0 败;1 胜(拿 1);2 败(只能拿 1,剩 1 给对手);3,4 胜;5 胜(拿 3 剩 2);6 胜(拿 4 剩 2);7 败;8 胜;9 败……每 7 个一循环,必败位置是除以 7 余 0 或 2 的数。14 是必败位置,所以让电脑先走。
电脑先走(按“让电脑走”开始)。你能守住每一步吗?
有的游戏不用推表,靠对称就能赢:
每次拿 1 枚或紧挨着的 2 枚,拿到最后一枚的赢。你先走。第一步拿哪里,才能让剩下的左右两边一模一样?
先手拿走正中间(硬币是偶数枚时拿中间两枚),剩下左右两段一样长。之后对手在一边拿什么,你就在另一边的镜像位置拿什么。只要对手还有得拿,你就有得拿——所以最后一枚一定是你的。
练一练
黑板上写着 1,2,3,…,10。每次擦掉两个数,写上它们的差。最后剩下的一个数是奇数还是偶数?(填“奇数”或“偶数”)
提示 · 方向一次操作之后,黑板上所有数的和变了多少?
提示 · 方法a+b 和 ∣a−b∣ 的奇偶相同,所以总和的奇偶不变。
提示 · 第一步开始时总和是 1+2+⋯+10=55。
完整解答55 是奇数。每次操作总和减少一个偶数,奇偶不变。最后只剩一个数,它就是总和,所以是奇数。
6 个杯子全部口朝上,每次必须恰好翻 4 个。最少翻几次,可以让它们全部口朝下?
提示 · 方向1 次行吗?2 次呢?每个杯子要被翻奇数次。
提示 · 方法数“杯次”:t 次一共翻 4t 个杯次。6 个杯子每个翻奇数次,杯次的总数至少是 6。
提示 · 第一步1 次只翻 4 个杯子,不够。2 次共 8 个杯次:6 个杯子每个翻奇数次,只能是五个翻 1 次、一个翻 3 次——可是 2 次里一个杯子最多被翻 2 次。
完整解答所以 2 次不行。3 次可以:翻 1,2,3,4;翻 1,2,3,5;翻 1,2,3,6。这样第 1,2,3 个各翻了 3 次,第 4,5,6 个各翻了 1 次,全部口朝下。答案是 3。
一堆石子有 23 颗,两人轮流拿,每次拿 1∼4 颗,拿到最后一颗的人赢。你先走。为了必胜,第一步应该拿几颗?
提示 · 方向从 0 往回推几个:哪些颗数是“轮到谁谁输”的?
提示 · 方法每次最多拿 4 颗时,对手拿 k 颗,你总能拿 5−k 颗,凑成一轮 5 颗。
提示 · 第一步必败位置是 0,5,10,15,20。你要把其中一个留给对手。
完整解答23−3=20。第一步拿 3 颗,剩 20 颗;之后对手拿 k 颗,你拿 5−k 颗,始终把 5 的倍数留给对手,最后一颗是你的。
五个人排成一排,身高编号从左到右是 5,3,4,1,2。每次只能交换相邻的、左高右矮的两个人。要排成从矮到高,恰好需要交换多少次?
提示 · 方向第 4 站说:交换的次数和你选的顺序无关。它等于什么?
提示 · 方法数逆序对:每一对“高的在矮的左边”算一个。
提示 · 第一步5 的右边有 3,4,1,2 四个比它矮的:4 对。
完整解答3 的右边有 1,2:2 对;4 的右边有 1,2:2 对;1 的右边没有更矮的。共 4+2+2=8 个逆序对。每次交换恰好消去一个,所以恰好 8 次。
一堆石子有 30 颗,两人轮流拿,每次只能拿 1、3 或 4 颗,拿到最后一颗的人赢。你想先走还是后走?(填“先走”或“后走”)
提示 · 方向不要猜,从 0 开始一个一个往后推“胜”和“败”。
提示 · 方法一个位置是“败”,当且仅当拿 1、3、4 颗之后到达的位置全是“胜”。推到出现循环为止。
提示 · 第一步0 败,1 胜,2 败,3 胜,4 胜,5 胜,6 胜,7 败,8 胜,9 败。
完整解答必败位置是除以 7 余 0 或余 2 的数:0,2,7,9,14,16,21,23,28,30,…。30=4×7+2 是必败位置,轮到谁谁输,所以应该后走。