前几天,我看到了这样一个问题:如何用火柴棒准确地搭出一个正方形?注意,由于没有任何工具可以让两根火柴棒拼成一个 90° 角,因此用四根火柴棒随意摆出一个四边形,最多也只能是个菱形。要想拼出一个正方形,我们还得想些奇招来。
一个经典的做法如上图所示。先摆出线段 AB ,下面我们将要确定线段 AK 的位置,使得两条线段成 90° 角。在 AB 上随意找一个点 C ,以 AC 为底搭出两个腰为 1 的等腰三角形 DAC 和 EAC 。容易看出, D 、 E 是关于 AB 对称的两个点。搭建一系列等边三角形 △ADF 、 △AFG 、 △AGH ,确定出 D 关于 A 点的对称点 H 。这样, H 、 E 两点就关于 AK 轴对称了。再搭一个等边三角形 AIE ,则 I 、 G 两点也关于 AK 对称。因此, HG 和 IE 的交点 J 就在 AK 上,自然 AK 的位置也就确定出来了。重复执行以上操作,我们便能完成以 AB 为边的整个正方形。
受此启发,我们自然而然地想到了这样一个问题:火柴棒的几何作图能力到底有多强?我们能仅凭借火柴棒找出三角形的外心吗?我们能仅凭借火柴棒搭出一个正五边形吗? 1939 年, T. R. Dawson 在一篇论文中证明了一个惊人的结论:火柴棒作图与尺规作图的能力完全一样!换句话说,用尺规作图能够确定的点,用火柴棒作图也能确定;而尺规作图办不到的事,火柴棒作图也没法办到。也就是说,火柴棒作图完全等价于尺规作图!
为了证明这一结论,我们首先得给火柴棒作图下一个定义。我们约定,用火柴棒作图时只允许以下四种基本操作,它们就是火柴棒几何中的“公理”:
1. 给定一点 A ,可以作一条通过 A 的单位长线段,或者以 A 为端点的单位长线段
2. 给定距离不超过单位长的两点 A 、 B ,可以作一条通过 A 、 B 的单位长线段,或者以 A 为端点过 B 的单位长线段
3. 给定距离不超过单位长的两点 A 、 B ,可以以 AB 为底作一个腰为单位长的等腰三角形 ABC 。
4. 给定距离不超过单位长的点 A 和直线 l ,可以作一条以 A 为端点,另一端点在 l 上的单位长线段
有了这些基本操作,我们便可以一步一步搭出火柴棒的几何世界了。
延长一条线段
如上图,搭出一系列等边三角形,我们便能实现线段的延长。注意到线段 CD 与 AB 平行且相距 √3/2 个单位,因此我们还得到了一个非常有用的工具:将给定线段平移 √3/2 个单位。
找出长度小于单位长的线段的中点
如图, AB 为已知线段。先作等腰三角形 ABC ;再作等边三角形 BDC 和 AEC 。 BD 和 AE 的交点 F 就在等腰三角形的中线上。 CF 的延长线与 AB 的交点就是我们所求的点 G 。
由于 CG 还平分了 ∠ACB 和 ∠DCE ,因此我们相当于有了一个平分不超过 120° 且不等于 60° 的角的办法。另外,由于 CG 还是 AB 的垂线,因此我们又有了过点 C 向已知线段作垂线的方法——先利用公理 4 摆出线段 CA 和 CB ,再找出 AB 的中点。即使 C 点离已知线段很远,垂线照样作得出,因为我们可以将已知线段不断平移 √3/2 个单位,让它与 C 的距离足够近。不过,这里还是有一种特殊的情况:若 C 与已知线段的距离恰好是 √3/2 的整倍数,这么做就不行了。
找出长度等于单位长的线段的中点
假如 AB 是一条长度恰为单位长的已知线段。首先在 AB 上任取一点 C ,然后作等腰三角形 ADC 。作等边三角形 CED ,与 AD 交于 F ;作等边三角形 AGD ,与 CD 交于 H ; CE 和 AG 交于点 I 。那么, DI 与 FH 的交点 J 就是 FH 的中点。 BH 与 AD 交于点 K , KJ 与 AB 交于点 L ,于是我们就成功地把 FH 的中点转移到了 AB 的中点。
这个构造弥补了我们之前留下的空缺。现在,我们不但能平分恰为 60° 的角,也能引出距离恰为 √3/2 的整倍数的垂线了。
过已知线段外的一点,作已知线段的平行线
不断平移已知线段 AB ,直到它离点 C 足够近。以 C 为端点,利用公理 4 引单位长线段 CD 、 CE 。反向延长 CE 到 F ,则 ∠DCF 的平分线 CG 就与 AB 平行。
找出距离大于单位长的两点的中点
已知很远的两点 A 、 B 。向任意方向作单位长线段 AC ,过 B 作它的平行线段 BD 。利用一系列等边三角形,构造逐渐向中间靠拢的中心对称图形,直到出现距离不超过单位长的对称点 E 、 F 。 EF 的中点也就是 AB 的中点。
既然我们能找到任意线段的中点,平分大于 120° 的角也就不成问题了。
好了,准备工作基本结束,下面我们就来说明火柴棒作图与尺规作图的等价性。注意到,火柴棒作图的四项基本操作都能用尺规作图实现,因此火柴棒作图是尺规作图的子集。为了说明尺规作图同时也是火柴棒作图的子集,我们只需要用火柴棒实现尺规作图的三个基本操作:作出过两点的直线、作出直线和圆的交点,作出圆和圆的交点。
作出过两点的直线
为了连接 AB ,首先找出 AB 的中点 C ,然后找出 AC 的中点 D , BC 的中点 E ……如此下去,直到 AB 之间有足够多的点,相邻点的距离都小于单位长度。这样,我们便可以用火柴棒连接很远的两点了。
作出直线和圆的交点
如图,给定点 A 、点 B 、圆心 C 以及圆周上一点 D ,我们需要找到直线 AB 与(隐形的)圆 C 的交点 L 。过 C 作 CE⊥AB 。在 CE 的反向延长线上截取 CF=CD (这是可以办到的,比如先作 ∠DCF 的角平分线,再过 D 作角平分线的垂线;后面还会反复用到这个技巧)。向任意方向作单位长度线段 FG 。过 E 作 CG 的平行线,交 FG 延长线于 H 。过 H 作 EC 的平行线,截取 HI=HG 。作 IJ∥HE 。最后,利用公理 4 作单位长线段 JK ,则过 C 平行于 JK 的直线与 AB 的交点就是所求点 L 。
为了证明其正确性,我们只需要说明 CL=CD 。图中的一系列平行线和等长线段告诉我们, CE:CD = CE:CF = HG:GF = HI:GF = JE:GF = JE:JK = CE:CL ,因此 CL 是等于 CD 的。
作出圆和圆的交点
如图,已知圆心 A 和圆周上一点 B ,圆心 C 和圆周上一点 D ,我们想要找出这两个圆的交点。由于我们已经能作直线与圆的交点了,因此为了作出两圆的交点,只要能找出公共弦所在直线即可。而公共弦与连心线垂直,因此我们只需要找出公共弦与连心线的交点 L 即可。不妨把圆 A 的半径记作 a ,把圆 C 的半径记作 c ,再在连心线上找出 LK=LC ,则由勾股定理可得 a^2 – AL^2 = c^2 – CL^2 ,即 (a+c)(a-c) = AC·AK 。也就是说, AK 就等于 (a+c)(a-c)/AC 。我们将利用这个关系找出 K 点来。
过 C 作 AB 的平行线,截取 CE=CD 。作 EF∥CB ,则 AF 就等于 a+c 。过 B 作 AC 的平行线,截取 BG=BF 。截取 AH=AB ,然后作 BI∥GH , AI 就等于 a-c 。作 IJ∥CF ,则 AJ 就等于 (a+c)(a-c)/AC 。最后,只需要截取 AK=AJ ,再找出 CK 的中点 L ,问题就圆满解决了。
这样一来,所有尺规作图能够办到的事情,只用火柴棒也能办到,一切火柴棒作图问题都被终结掉了。不过,对火柴棒几何的研究还远未结束。如何简化作图过程,作出指定图形最少需要多少根火柴棒……这些悬而为解的问题都还有待人们继续探索。
果然奇招。这几天一直在等你的文章 呵呵
沙发已没……
截取任意长度线段呢?首先火柴棍的长度是离散的……
神奇的火柴!
火柴是相当的神奇啊
这就是生锈圆规问题的一种变形吧
可以考虑用这个做个游戏,从基本的火柴棒作图开始,一步一步提高难度,应该会很好玩,真正寓教于乐了。
和只用圆规作图等价于尺规作图有点类似呢
楼上+1,博主其实可以搞一个专题系列,专门介绍尺规作图的各种变种。
锈规作图?以前不是也写过这个东西么.
http://www.matrix67.com/blog/archives/497
@10L:
这与锈规作图完全不一样啊。。锈规是画弧
就是一个圆形吧
@11L:
火柴也是画弧啊,而且和锈规一样半径是一定的。
这个时侯,难得还有这样的博客,赞
记得曾经看过个趣题:如何用6根火柴摆出4个三角形?
楼上的是在哪里看到的呢?
6根火柴摆个三棱锥就好了……
@12a:
火柴可以直接作出线段-线段和弧-线段交点的
要求太不明确了
要是按我直接的理解,允许平移或旋转一个已有图形,使其经过某一点的话,显然没有这么麻烦
最简单的,弄个两个三角形构成的菱形,然后让第一步的图形过较远的两点,就可以得到30度角了
要是不允许的话,貌似我不明白第一步构造三角形如何完成
当然,实际上按照我的直接理解,让两根火柴重合就可以直接延长线段了
就算你觉得这样作弊的话,以重合部分的两端点为对角线搭一个菱形或者其它图形,也可以把两点给固定下来了
@19:
是哦,比锈规的用法要多,可惜能做的图是一样的。
我怎么是12aL?
很牛!!火柴棒的威力很大!
卖火柴的应该附送一本几何读本。
“我能用直尺作尺规能左的所有图,不信,××沙漠见!
这里认定火柴棍是完美的线段,相交的时候不会有误差的。基于这样的假设,我也想了一个火柴棍做出一个直角的办法,用火柴棍先做6个等边三角形组成一个正六边形ABCDEF,那么ABD就是90度,用2根火柴棍叠在一起,连接BD就可以得到直角了。
很形象 很贴近
怎样用6根火柴棒搭出6个三角形?
四根不够啊。要度量起码要5根。
否则只需用n根火柴棒搭出1:2:sqrt(3)的直角三角形得到30度和60度就行了。。
确实跟锈规问题是一样的。
我的理解是允许平移或旋转一个已有图形,使其经过某一点的话,显然没有这么麻烦
最简单的,弄个两个三角形构成的菱形,然后让第一步的图形过较远的两点,就可以得到30度角了
要是不允许的话,貌似我不明白第一步构造三角形如何完成
柴也是画弧啊,而且和锈规一样半径是一定的
针对第一个【火柴搭90度】的问题,另一种简单方法==>
我们看一下原文的第二张图, 标题【延长一条线段】下,也就是7根火柴5个点组成三个等边三角形的图(发不了图。。。抱歉。。。)
角ACE为90度
只要确定了ACE三点的位置(用笔描一下)就可以得到直角
不知道我的这种想法算不算违规了。。。吃不准。。。嘿嘿
还有就是火柴要用7根。。。不知道合不合要求。。。
相思一夜情多少,地角天涯未是长。