玩转内接多边形(二):任意多边形内均存在内接矩形

    紧接着,我们想问:是否任意一个多边形内都能找到内接矩形呢?有意思的是,答案也是肯定的。但此时,前一节我们用到的两种证明方法现在都派不上用场了,我们需要用到一些全新的手段。下面这个证明真可谓是巧妙到了诡异的地步,真不知是谁想出来的。

    对于多边形边界上的任意两点 A(x1, y1) 、 B(x2, y2) ,作出它们在三维空间中所对应的点 ((x1+x2)/2, (y1+y2)/2, √(x1-x2)^2+(y1-y2)^2) 。换句话说,把多边形放在水平面 z=0 上,对于多边形上的每一组无序点对 A 、 B ,在线段 AB 中点的正上方 |AB| 处作一个点。再把这个多边形本身加进去,我们就得到了一个三维空间中的封闭曲面。

    可以看到,图中所示的例子中,这个曲面与自身相交了。这就表明,存在多边形边界上的两组点对 A 、 B 和 C 、 D ,它们满足线段 AB 和 CD 的中点重合,并且两线段一样长。这样,四边形 ABCD 就是多边形的一个内接矩形了。下面我们将说明,这个曲面一定会与自身相交。

Read more…

玩转内接多边形(一):任意多边形内均存在内接正三角形

    这本电子书的第五章非常牛 B ,里面讲到了一系列与多边形的内接图形有关的定理及其证明。有意思的是,同样是研究多边形的内接图形,当具体的研究对象不同时,证明手段也各有各的精彩,并且十分难得的是,这些证明都极具欣赏价值。读完这些巧妙的证明后,我迫不及待地想与大家分享。这里我们先来热热身,看一看最简单的情况:一个多边形内是否总能内接一个等边三角形。

 
 
 

    答案是肯定的,任意一个多边形内总存在一个内接等边三角形。一个非常直观的证明是,令 P 为多边形边界上的一点, Q 点为多边形上的一个动点。以 PQ 为边作等边三角形,把这个三角形的第三点记作 R 。当 Q 离 P 点充分近的时候, R 显然在多边形内部;当 Q 点运动到离 P 点最远处 Q’ 时,多边形内的任意一点到 P 的距离都比 PQ’ 小,因此此时 R 点只可能在多边形外。但 R 的运动轨迹显然是连续的,因此在运动过程中它一定经过了多边形的边界。此时,我们就找到了多边形边界上的三个点 P 、 Q 、 R ,它们组成了一个等边三角形。

Read more…

奇妙的心电图数列

    心电图数列 (EKG Sequence) 的定义简单而有趣:第一项为 1 ,第二项为 2 ,以后的每一项都是最小的和前一项不互质并且不曾出现过的数。换句话说,数列 a(1)=1 , a(2)=2 ,且当 n>2 时取 a(n) 为所有满足以下两个条件的数中最小的那一个:该数与 a(n-1) 有大于 1 的公约数,并且该数与前面 n-1 项都不相等。心电图数列的前面 20 项为

      1, 2, 4, 6, 3, 9, 12, 8, 10, 5, 15, 18, 14, 7, 21, 24, 16, 20, 22, 11 …

    为什么它叫做心电图数列呢?原因很简单——因为把它描绘在图象上时,看上去像一张心电图。

 

Read more…

满足xy恰有k个约数的(x,y)所组成的图形

刚才在这里看到了如题所说的图像,立即想到用 Mathematica 验证一下。我选出了几个个人比较感兴趣的 k ,再用一句话便可输出所有对应 k 的图像:

kArray = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 36, 50};
For[i = 1, i <= Length[kArray], i++,  Export["F:\" <> ToString[kArray[[i]]] <> ".png",
  ArrayPlot[Table[Boole[Length[Divisors[x*y]] == kArray[[i]]], {x, 1, 400}, {y, 1, 400}],
   PixelConstrained -> {1, 1}, Frame -> False]]];

 
当 k=2 时,由于只有素数才有两个约数,因此所有点都是形如 (p, 1) 或者 (1, p) 的点,其中 p 为某个素数:

Read more…