几个把平面几何问题的辅助线做到空间去的数学趣题

一、平面三圆问题1

      

    问题:平面上三圆两两相交于六点。试证明三条公共弦共点。
    证明:把这三个圆想像为三个球的大圆。为方便叙述,我们把三个球的球心确定的平面记作 α。显然,平面 α 在三个球上的截面就是题目的这三个大圆,而 α 上的三个大圆的三条公共弦即是每两个球之间的公共小圆在 α 上的投影。我们要证明的就是三个公共小圆在平面 α 上的投影共点。注意到三个球交于两点,这两点关于平面 α 对称且这两点就是三个公共小圆的交点。把这两点也投影到平面 α 上,得证。

二、平面三圆问题2

    问题:在平面三个圆中,任意两个圆都有两条公切线且两条公切线交于一点。显然,这样的点有三个。试说明这三点共线。
    证明:在这个平面的三个圆上放三个球,每个球的半径都等于它底下的那个圆的半径。显然,这个平面是这三个球的一个公切面。再把公切线想像成这三个球确定的三个圆锥的母线在平面上的投影。显然三个圆锥的顶点都在这个平面上,且这三个顶点就是待证共线的三点。这三点是显然共线的,因为我们可以在三个球上找到另一个公切面(想像一块玻璃板从上面盖下去),那么这个切面上也包含了三个圆锥的顶点,而这两个切面的交线是唯一的一条直线。

三、四人旅行问题
    问题:平面上四条直线,任两条不平行,任三条不共点。四个旅行者 A、B、C、D 分别匀速地走在这四条直线上(他们的速度可以不相同)。若 A 在行走过程中与 B、C、D 相遇,B 在行走过程中与 C、D 相遇(当然也遇见了 A),求证:C、D 在行走过程中相遇。
    证明:作垂直于平面的直线作为时间轴,建立三维直角坐标系。由于四人均匀速行走,因此他们的路程-时间图像是线形的。我们可以在空间中作出 A、B、C、D 四个人行走路程与时间关系的图像并分别命名为 La、Lb、Lc、Ld。这样,我们可以从这四条空间直线中轻易判断某一时刻四人的位置。例如,空间中 P 点 (x, y, t)在直线 Lc 上,则表明在 t 时刻 C 走到了平面(x, y)位置。好,现在强了,真的强了。A、B 不是曾经相遇过吗?这就是说,La 和 Lb 相交。这两条相交直线可以确定一个平面。C 不是与 A、B 都相遇过吗?那就是说,Lc 与 La、Lb 都相交。于是,Lc 也在这个平面上。同样地,Ld 也在这个平面上。既然全部都共面了,Lc、Ld 必然会相交,即 C、D 必相遇。得证。

四、三角形对称问题
  

    问题:平面上任意三角形 ABC 和异于 A、B、C 三点的点 P。 X、Y、Z 三点分别是 P 点关于三边 BC、AC、AB 的中点的对称点。求证:AX、BY、CZ 共点。


    证明:考虑空间中一点 P' 使 PP' 垂直于平面 ABC。作出 X'、Y'、Z' 关于三边 BC、AC、AB 的中点对称。可以得到,点 A、B、C、P'、X'、 Y'、Z' 是一个平行六面体的顶点。AX'、BY'、CZ' 是三条体对角线,他们显然共点。这个证到了有什么用呢?把这几个带了一撇的点全部投影到平面 ABC 上,结论就证到了。

不可解问题(Undecidable Decision Problem)

    看黑书介绍NP的时候有一个“不可解问题”,非常不可思议,费劲周折在网上查到了些英文资料,搞明白了,非常有意思,在这里说一下。
    不可解问题(Undecidable Decision Problem)指的是这样一种问题:他无论如何也不可能有一个正确的算法来解决。虽然不可思议,但这种问题被证明确实是存在的。图灵在1936年(那时还没电脑,我们的父亲是在没有设备支持的纯理论基础上提出来的,致敬)提出了第一个不可解问题的实例:The Halting Problem。
    The Halting Problem是问,输入一段程序代码和一个针对此程序的输入,能否编程判断运行这个程序后程序是否会终止。
    这个问题的答案是否定的。也就是说,不可能有一种算法可以正确判断一个指定的程序运行后,给予指定的输入,程序最后出不出得来。换句话说,The Halting Problem是一个不可解问题。
    虽然这感觉似乎不可能,但在严格的证明下谁也无法发言反对。
    证明过程非常简单,假设The Halting Problem是有解的,并且已经用程序实现了,那么我们只需要再编写一个程序Program Bug,就会发现存在矛盾。
    反证:既然解决The Halting Problem的算法已经实现了,那么我们一定能定义一个函数
Function Halting(a,b:input_type):boolean;
    其中,a是读入的程序源码,b是输入数据。这个函数的功能就是返回对于指定的程序源码和输入数据,程序是否能顺利退出。
    下面编写一个程序:
Program Bug;
var
    code:input_type;
begin
   get(code);   //读入code
   if halting(code,code) then repeat until false
      else halt;
end.

    好,现在运行Bug这个程序,并且输入Bug这个程序本身的代码。这样,halting(code,code)其实质就是在判断这个Bug程序本身了。如果The Halting Problem认为Bug程序会正常退出,那么就让程序进入一个死循环,否则立即退出程序。矛盾产生。
    //简直是在挑战表达力极限
    //做人要厚道,转帖请注明出处

圆比直线长?

    今天在MOP上看到一个比较有意思的东西,楼主在109楼证明了圆比直线长。
    任做一条直线和一个圆,把直线平移使它和圆相切。直线和圆上的点都有无数多,我们怎么比较呢?于是,想到了把直线上的每一点和圆上的每一点建立一一对应关系。对于直线上的每一个点,我们都能经过它做出圆的切线,这个切点就可以和直线上的那个点对应起来。好,现在好玩了:圆上有一个点是永远也不会切到的(就是和原直线相对的那个点)。于是结论出现了:除了这个点之外,圆上的其它点都能够找到直线上相对应的点。也就是说,圆比直线长。长多少呢?就长一个点。

非常奇妙的证明:图形必在格点之外

从cut-the-knot上看到的。

问题:
    设想一个平面上布满间距为1的横纵直线,形成由一个个1×1正方形组成的网格。任意给一个面积小于1个单位的图形,证明这个图形总能放在网格中而不包含任何一个格点。

       

证明:
    我们可以这样考虑这个问题:把图形随意放在网格中,如何移动网格使每个格点都在图形外面。
    现在我们把给定的图形随意放在网格中。然后沿着网格线把包含有图形的网格切成1×1的小格子,从网格中拿出来。把它们重叠起来(不旋转),再想像这些格子是透明的,而图形是不透明的。从上往下看这一叠格子,你看到的会是这个图形的各部分重叠地放在一个格子中,仿佛一个沾有污渍的方块。很显然这些污渍不会布满整个方块(图形面积小于一个格子的面积),方块上总有一块干净的地方。现在我们用一颗针从一个干净的地方刺下去,把这些重起来的格子刺穿。把这些格子放回原来的网格中,你看到的会是每一个有图形的方格内都有一个针眼,这些针眼都不在图形内。现在可以把原来的网格擦掉了,这几个针眼可以看作是新网格的格点。按针眼的位置重画新的网格,那么这个图形内决不会有新网格的格点,此时,结论也就证到了。

做人要厚道,转帖请注明出处。

谬论:所有角都是直角

    今天在cut-the-knot上看到一个东西很有意思。
    证明:所有钝角都是直角。

    在线段AC上向外做射线AB、CD,使∠BAC为直角、∠ACD为钝角。下面我要证∠ACD=∠BAC。
    首先适当取B和D在射线上的位置使AB=CD,显然BD、 AC不平行。分别作出BD和AC的垂直平分线,交于点P。
    那么△PBD和△PAC就是等腰三角形了。
    于是,BP=DP,AP=CP,又AB=CD,所以△BAP≌△DCP。
    因此∠BAP=∠DCP。又∠PAC=∠PCA,所以∠ACD=∠BAC=90°,证毕。
    其实用同样的方法也可以证明“所有锐角都是直角”,这样,所有的角都是直角了。
    看完后,有人或许会说,肯定证明过程的哪一步有问题。这不是废话吗?没问题的话,所有角都是直角了,那还得了?
    我想起那个“所有三角形都是等腰三角形”的证明了,更经典,哪天也写出来。