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

数学冷知识:不断取英文表达的字符数,最后总会得到数字4

Matrix67: My Blog 2011-08-09 08:09:26 累计浏览 3,822 次
本机暂存

     这道题的答案有几个字母?答案:four。

     有趣的是,这是唯一的答案。如果令函数 f(n) 表示正整数 n 的英文表达中有多少个字母, n=4 是该函数的唯一不动点。

    n    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …

           f(n)  4, 3, 3, 5, 4, 4, 3, 5, 5, 4, 3, …

     事实上, @IanMathmogician 发现了一个更有趣的“数学冷知识”:任取一个 1 到 100 之间的正整数 n ,算出这个数的英文表达中的字符个数,再算出所得结果的英文表达的字符数,并这样一直迭代下去,最后总会得到数字 4 。我用 Mathematica 做了一张图片,可以让大家直观地看到,这真的可以说是条条大路通向数字 4 啊。

           原图已失效

     那么,对于更大的数,如此迭代下去也都会变成 4 吗?恐怕没有人会置疑这一点吧。事实上,由于数字的英文描述所需字符数是对数级别增长的,因此从理论上说,对于更大的数,英文表达所用的字符数都应该比这个数字本身更小。于是,反复取字符数,所得结果必会越来越小;到了充分小的时候,就会根据上图的指示掉进数字黑洞 4 里。

     我另外画了一个从 1 到 1000 的所有数的转移示意图,非常壮观,贴在下面供大家观赏。

    原图已失效

同分类推荐文章

  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. URL正则表达式 (累计阅读 4,784)
  2. 良好的书写规范提高PHP代码执行效率 (累计阅读 3,518)
  3. 蛋疼研究之怎样刷屏最快? (累计阅读 3,398)
  4. 锈规作图续篇:单用一个只能画单位圆的圆规如何作线段中点 (累计阅读 2,880)
  5. 过滤字符的性能调优? (累计阅读 2,868)