一句话
“最多是 M”是两句话:① 真的能做到 M(给出构造);② 不可能超过 M(给出论证)。 少了哪一句,都只是猜。
把两句话画在一把尺子上:构造从左边往右推,论证从右边往左压,中间是“还不知道”的地带。两个箭头碰在一起,题才算解完。
6×6 棋盘上最多放几个互不相邻的王
第 1 / 5 步 -
先随手摆 随便摆 4 个,互不相邻。于是我们知道:答案至少是 4。构造每进一步,左边的箭头往右走一步。
4≤M
-
第一个论证:按行切
-
摆得更整齐
-
更紧的论证:切成 2×2
-
夹住了
论证常用的办法是从局部到整体:把整体切成小块,每一小块里“最多几个”一眼就能看出来,再加起来。切法就是抽屉原理里的“造抽屉”。
先猜后证
换成 5×5 的棋盘。最多能放几个互不相邻的王?
个
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
5×5 切不成整齐的 2×2,但可以切成 4 个 2×2、4 个 1×2(或 2×1)和 1 个单格,一共还是 9 块,每块最多 1 个王。而第 1、3、5 行与第 1、3、5 列的 9 个交叉格正好放得下 9 个。棋盘小了,答案却没变。
下面四站,问题不同,“两头夹”的办法完全一样。
第 1 站 · 棋盘:象
象沿斜线走。5×5 的棋盘上,最多放几个互不攻击的象?
先摆。然后试三种切法:按行切几乎没用;按斜线切得到一个上界;再细一点,还能压掉 1。
“斜线,两个角并成一块”:左下角和右上角各自是一条只有 1 格的斜线,但它们俩在另一个方向的同一条斜线上,会互相攻击,所以合起来也只能放 1 个。
沿同一方向的斜线有 9 条,每条最多 1 个象,上界是 9。可是其中两条只有一格——就是两个对角——而这两格互相攻击,不能同时用。上界压到 8。构造:第一行放满 5 个,最后一行放中间 3 个。
第 2 站 · 数集:差不能是 4
从 1∼16 里选数,任何两个数的差都不等于 4。最多能选几个?
有两种分法都能把上界压到同一个数。它们各自把哪些数关在了一起?
把相差 4 的数配对:(1,5),(2,6),(3,7),(4,8),(9,13),…,(12,16),共 8 对,每对最多选 1 个,所以最多 8 个。构造:1,2,3,4 和 9,10,11,12。
第 3 站 · 数集:不许有两倍
从 1∼16 里选数,不许出现一个数是另一个数的 2 倍。最多能选几个?
先猜后证
先猜:最多能选几个?(“全选奇数”能选 8 个,还能更多吗?)
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
把数按“翻倍链”分开:1→2→4→8→16,3→6→12,5→10,7→14,以及 9,11,13,15 各自一条。一条链上相邻的两个不能同时选,所以长为 5,3,2,2 的链最多选 3,2,1,1 个,四个单独的数各选 1 个:
3+2+1+1+4=11.构造就照着链去选:1,4,16;3,12;5;7;9,11,13,15。在下面摆出来,看尺子合上。
这一次,好的抽屉里“最多能挑”的个数不都是 1——抽屉不必只装一个,只要每个抽屉的容量算得清。
第 4 站 · 反过来:最少要几个
求最小值时,方向正好反过来:构造说“这么少就够了”,论证说“再少不行”。
一个卫兵能看住自己站的那格和周围一圈。看住整个 6×6 的院子,最少要几个卫兵?
先放卫兵把院子看满,越少越好。再切到“放证人格”:挑几个格子,让任何位置的卫兵都没法同时看到其中两个。
四个角就是很好的证人:能看到左上角的卫兵只能站在左上的 2×2 里,他离其他三个角都太远。四个角各需要一个不同的卫兵,所以至少 4 个。而站在第 2、第 5 行与第 2、第 5 列交叉处的 4 个卫兵,正好各管一个 3×3 的区域,看住了全部 36 格。
如果上界没人接得住
结论:这个上界就是答案 ← 还成立吗?
切成 2×2 的方块,上界是 9。摆出 9 个王,尺子合上。
只允许“按行切”:上界是 18。试着摆出 18 个王——或者至少超过 9 个。
尺子上的两个箭头停在 9 和 18,中间的空白怎么也合不上。“M≤18”是一句真话,却不是答案:它只说明这个论证不够好,得换一种切法。
练一练
7×7 的棋盘上,最多能放多少个互不相邻(包括斜着相邻)的王?
提示 · 方向两件事:摆出来,再证明不能更多。先想怎么摆最整齐。
提示 · 方法构造:隔行隔列地摆。论证:把棋盘切成尽量多是 2×2 的小块,每块最多 1 个王。
提示 · 第一步第 1,3,5,7 行与第 1,3,5,7 列的交叉处,共 4×4=16 个,互不相邻。
完整解答论证:把第 1∼2、3∼4、5∼6、7 行分成 4 组,列也这样分 4 组,棋盘被切成 16 块(2×2、2×1、1×2 或单格),每块里任何两格都相邻,最多放 1 个王,所以不超过 16 个。构造达到 16,答案是 16。
8×8 的棋盘上,最多能放多少个互不攻击的车?(车攻击同一行、同一列的所有格子。)
提示 · 方法论证:按行切,每行最多 1 个。构造:找 8 个格子,不同行也不同列。
提示 · 第一步8 行,每行最多 1 个车,所以不超过 8 个。
完整解答把 8 个车放在一条对角线上,它们两两不同行也不同列,互不攻击。上界 8,构造 8,答案是 8。
从 1∼15 里选出一些数,使任何两个数的差都不等于 3。最多能选多少个?
提示 · 方向哪些数会“互相妨碍”?1 妨碍 4,4 妨碍 7……
提示 · 方法按除以 3 的余数分成三条链,每条链上相邻的两个数不能同时选。
提示 · 第一步三条链:1,4,7,10,13;2,5,8,11,14;3,6,9,12,15。每条有 5 个数。
完整解答一条 5 个数的链上,不选相邻的,最多选 3 个(第 1,3,5 个)。三条链最多 3×3=9 个。构造:每条链选第 1,3,5 个,即 1,7,13;2,8,14;3,9,15。同一条链里两数的差是 6 或 12;不同链的两个数除以 3 的余数不同,差不是 3 的倍数。所以没有哪两个数差 3。答案是 9。
6×6 的棋盘上,最多能放多少个互不攻击的象?
提示 · 方向回到第 1 站。5×5 时是 8=2×5−2。
提示 · 方法论证:数同一方向的斜线条数,再注意两条只有一格的斜线。构造:用第一行和最后一行。
提示 · 第一步同一方向的斜线有 2×6−1=11 条,每条最多 1 个象。两条单格斜线是一对对角,它们互相攻击,合起来只能放 1 个。
完整解答上界 11−1=10。构造:第一行放满 6 个,最后一行放中间 4 个(去掉两头)。同一行的象互不攻击;第一行与最后一行相隔 5 行,要互相攻击必须相差 5 列,只有两头的格子才会这样,而它们没有放。共 10 个,答案是 10。
第 4 站的卫兵问题换成 7×7 的院子。最少需要多少个卫兵?
提示 · 方向6×6 时 4 个卫兵各管一个 3×3。7×7 多出一行一列,4 个还够吗?
提示 · 方法论证:找一批证人格,任何卫兵都不能同时看到其中两个——两格的行或列相差至少 3 就行。构造:让卫兵的 3×3 区域把院子盖满。
提示 · 第一步证人:第 1,4,7 行与第 1,4,7 列交叉处的 9 格。任何两格的行或列至少相差 3,而一个卫兵看到的两格行、列都至多相差 2。
完整解答所以至少要 9 个卫兵。构造:把卫兵放在第 2,4,6 行与第 2,4,6 列的交叉处,共 9 个;第 2 行的卫兵管第 1∼3 行,第 4 行的管 3∼5 行,第 6 行的管 5∼7 行,列也一样,全部 49 格都被看住。答案是 9。