你知道100⁹⁹和99¹⁰⁰哪个更大吗?
先看看两个数的含义:
你会发现:无论是99个100,还是100个99,加起来都是9900。
所以这个问题变成了:
如果你把9900拆成几个数的和,然后把它们乘起来,什么时候乘积最大?
小学时候,我的数学老师教过我这个问题。他说:把一个数拆成几个正整数的和,让它们的乘积最大,应该尽量拆3,拆不了3的,就拆2或者4。这个时候乘积就最大。
比如,你要12拆成几个正整数的和,再把它们乘起来。你可以拆成12个1、或者6个2、或者4个3、或者3个4、或者2个5和1个2、或者2个6。它们的乘积是:
你发现没?把12拆成4个3,它们的乘积是81,最大。
现在,你要把9900拆成一大堆正整数的和,让它们的乘积最大,那么应该拆成3300个3,它们的乘积最大:
如果拆成100个99或者99个100的话,因为99离3更近,所以99¹⁰⁰更大。实际上:
这个结论有啥用呢?
它可以告诉我们:我们平常用的10进制和计算机的2进制,都没有3进制的效率高。
具体来说:大家一定见过小孩玩的算珠计数器吧!如果给你100个珠子,你最多能表示出多少个数呢?
如果计数器用10进制,那每一位的柱子上需要有10个珠子(不要跟我争论9个珠子也可以,从0到9明明就是10个数),100个珠子可以串满10根柱子,也就是能表示出十位数,总共能表示1010个数;
如果用5进制,每一根柱子上需要串5个珠子,一共能串满20位,也就是能表示520个数...
以此类推,列一个表格:
你会发现:同样用100个珠子,使用3进制——每根柱子上串3个珠子,表示33位,效率是最高的,它能表示出最多的数字!

我们还可以把进制x作为横坐标,把100个珠子在这种进位制下能表示的数作为纵坐标,画出一幅图,你会发现,在进位制是e=2.71828…时表示的数最多!这个数就是自然常数e!它是一个和圆周率π一样神奇的无理数!
当然,进位制应该是整数,就找一个最靠近e的数吧——那就是3!
我们在生活中用10进制,因为方便,计算机普遍采用二进制,因为符合电路特点。但实际上,3进制才是效率最高的。美国和苏联其实都研究过3进制计算机,不过因为种种原因放弃了。说不定什么时候,人们重启了三进制计算机的研究呢。
那么,为什么3有这么神奇的性质呢?
其实,这是一个函数极值问题。我们要将一个整数N拆几个x的和,显然可以拆出N/x个数。把它们乘起来,乘积函数f(x)可以写作:
现在我们要问:x取多少,这个函数才最大呢?我们对这个函数取对数,再求导数:

你会发现:
  • 当x<e时,lnx<1,导函数大于0,f(x)是增函数;

  • 当x>e时,lnx>1,导函数小于0,f(x)是减函数;
  • 当x=e时,导函数等于0,f(x)取最大值。

所以,把一个数拆自然常数e的和,这些数的乘积才是最大的!在自然界中,e进制也是效率最高的。如果必须选择整数,那就选择那个最接近e的整数——3。现在,你明白了吗?
继续阅读
阅读原文