7×7 点阵中至少选多少个点,才能保证存在水平竖直长方形?
从 7×7 的点阵中,至少要选出 ______ 个点,才能保证在这些选出的点中一定能找到四个点,恰好可以构成一个边为水平、竖直方向的长方形(含正方形)的四个顶点。
交互演示
21 个实心点按每行向右循环平移一格排好,暂时固定。点击任一空心点加点,再点一次可撤回;试试全部 28 个空位。
键盘方向键移动焦点,空格或回车选点。
- 已选点数
- 21 / 49
- 搭配使用总次数
- 21 / 21 个抽屉
- 已用列搭配种数
- 21 / 21
- 检测到长方形
- 0 个
同一行选中的任意两列构成一种搭配;不同的行不能重复同一种搭配,否则出现长方形。
逐行对账
一行选 3 点,产生 3 种列搭配;选 4 点,产生 6 种列搭配。搭配次数按行累加,重复也计入。
原理图解
第 1 行选第 1、2、4 列,后面每行向右循环平移一格。21 种列搭配各用一次,再加一个点就会出现长方形。
极简解答
列搭配的容量上限:21 种
同一行选中的任意两列,构成一种搭配;不同的行不能重复同一种搭配,否则出现长方形。
7 列中选两列,全部可能的列搭配只有 C(7, 2) = 21 种(即 21 个抽屉)。因此要想全阵不出现长方形,所有行产生的列搭配总数最多只能容纳 21 种。
正向推算点数上限:最多选 21 点
一行选的点越多,产生的搭配数增长越快(选 2 点产 1 种、选 3 点产 3 种、选 4 点跳到 6 种)。要在不超过 21 种搭配的前提下多放点,每行点数应尽量平均:
• 每行选 3 点:7 行共 7 × 3 = 21 点,产生搭配 7 × C(3, 2) = 21 种,恰好占满全部 21 个抽屉!
• 若想选 22 点:哪怕最省(6 行 3 点、1 行 4 点),搭配总数也会达到 6 × 3 + 6 = 24 种 > 21,必定重复碰撞出长方形!
因此,避开长方形的理论上限就是 21 个点。
验证 21 点可行,锁定答案 22 点
这 21 点的上限能否真正做到?第 1 行选 第 1、2、4 列,后面每行顺次向右循环平移 1 格:
行 1: (1, 2, 4) · 行 2: (2, 3, 5) · 行 3: (3, 4, 6) · 行 4: (4, 5, 7)
行 5: (5, 6, 1) · 行 6: (6, 7, 2) · 行 7: (7, 1, 3)任意两行最多只有 1 个公共点,不多不少刚好把 21 种搭配各用一次,确实做到了 0 个长方形!
既然 21 个点可以完全避开,要想保证必有长方形,就必须突破这个上限,至少选出 21 + 1 = 22 个点。