IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

趣题:两两间的距离都是整数的点集

Matrix67: My Blog 2011-01-19 22:16:56 累计浏览 2,117 次
本机暂存

     最多能在平面上找出多少个点,使得它们两两之间的距离都是整数?当然,我们忽略最平凡的解――所有点都在一条直线上。

     三个点的解显然是存在的,只需要构造一个边长为 1 的等边三角形即可。事实上,满足任意两数之和大于第三数的一组整数都可以成为一个三角形的三条边。寻找含有四个点的解也并不困难,一个长为 4 宽为 3 的矩形就能满足要求。不过,我们还有更小一些的解。最小的解貌似是下面这个等腰梯形:上底、下底分别是 3 和 4 ,两腰都是 2 ,两条对角线都是 4 ,正好也都是整数。

    原图已失效

     那么,能否找到平面上的五个不共线的点,使得两两之间的距离都是整数呢?最多能找到多少个这样的点呢?

     想到这个问题之后,我在网上简单地搜索了一下。出人意料的是,我们能在平面上找出任意多个不共线的点,使得它们两两之间的距离都是整数。构造方法有很多,这里提到的是我最喜欢的构造方法之一。

     为了得到所有距离都是整数的点集,我们只需要构造出所有距离都是有理数的点集,再乘以所有分母的公倍数即可。现在,作一个直径为 1 的圆,任意作一条直径 AB 。取两组勾股数,比如 (3, 4, 5) 和 (5, 12, 13) 吧。在圆上找一点 C ,使得 ABC 组成一个边长分别为 (3/5, 4/5, 1) 的直角三角形;在圆上找一点 D ,使得 ABD 组成一个边长分别为 (5/13, 12/13, 1) 的直角三角形。这样一来, AB 、 AC 、 BC 、 AD 、 BD 的长度就都是有理数了。有趣的是,根据 Ptolmey 定理,这个圆内接四边形满足 AB ・ CD + AC ・ BD = AD ・ BC ,由此可知 CD 的长度也一定是一个有理数。

    原图已失效

     由于本质上不同的勾股数组有无穷多个,因此圆弧上像 C 和 D 这样的点也有无穷多个。也就是说,我们能在圆上找到任意多的点,使得它们之间的距离都是有理数。乘以这些有理数的公分母后,便能得到任意多个两两距离都是整数的点了。

     寻找满足各种条件的“整距离图形”是一个非常有趣的话题。这类问题叫做 Rational Distances ,搜索一下可以找到很多有趣的结论。

同分类推荐文章

  1. 对基本有序的序列排序算法 (2026-06-11 17:46:49)
  2. Four Levels Of Customer Understanding (2026-05-22 21:00:00)
  3. 除法的意义 (2026-04-12 20:52:17)

查看更多 算法 文章 →

建议继续学习

  1. 贴着另一枚硬币旋转一周则自身转了两周:不同的解释方法 (累计阅读 6,393)
  2. 谁说使用Python你就写不出混乱的代码? (累计阅读 5,454)
  3. 能否在等边三角形点阵中画一个正方形? (累计阅读 5,162)
  4. 亲爱的用户,您真的满意吗? (累计阅读 4,914)
  5. 千万不要迷信规律:大反例合集 (累计阅读 4,840)
  6. 正多边形的滚动与旋轮线下方的面积 (累计阅读 4,285)
  7. 漫话折纸几何学 (累计阅读 3,626)
  8. 趣题:把比萨分成若干等份使得至少有一份不含边 (累计阅读 3,582)
  9. 用正方形纸片折出等边三角形 (累计阅读 3,539)
  10. 网站广告投放策略研究 (一) 轮播以及效用最大化 (累计阅读 3,371)