精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>科学大观>>● 自然科学>>数学>>只给出素数值的公式(二)

主题:只给出素数值的公式(二)
发信人: eigolomoh(异调)
整理人: 2sinxcosx(2003-10-23 20:59:58), 站内信件
只给出素数值的公式(二)

有朋友对我在(一)中给出的公式“不太相信”,我承认这两个公式
乍一看好象十分神奇,而且也不容易验证,有点口说无凭。今天我要
给出一个更“神奇”的公式,它能顺次给出所有的素数。不仅如此,
每个人都可以自己验证这个公式是正确的。听起来好象是天方夜谭吧。
正是通过对这个公式的理解,我们知道了这类公式对寻找巨大素数,
探求素数分布的规律没有任何作用。当然,我们能够以此欣赏数学之
美,从这方面来说,它们又是极有价值的。

存在一个实常数L(这个常数有时候叫做Liouville-Erdos常数,刘维
尔和厄尔多斯大家都应该听说过吧,大名鼎鼎),使得
f(n)=[L*10^(n^2)]-[L*10^((n-1)^2)]*10^(2n-1)
为第n个素数(n>=1)。换句话说,上面这个公式顺次给出所有的素数。

对于比较有自信心的朋友,我希望他们能够暂时停住,不看下面的内
容,研究一下这个公式,自己把L推导出来。这并不困难,只要你把
上面的公式拆成几块,弄清楚每块都在干什么。

其他人往下看





































































































“骗局”在你看见这个L的真面目时揭开了:
L=0.200300005000000700000001100……
也就是第n个素数写在L的小数点后第n^2位上。有定理保证第n个素数
的十进制位数不超过2n-1位,所以一定写得下。

在公式中,[L*10^(n^2))]不是别的,就是把L的小数点往右移动10^(n^2)
位,然后把小数部分抹掉。比如说n=4,
[L*10^(4^2))]=2003000050000007
同样地,[L*10^((n-1)^2))]就是把L的小数点往右移动10^((n-1)^2)
位,然后把小数部分抹掉。而它乘以10^(2n-1),就是把小数点再移
2n-1位。所以[L*10^((n-1)^2))]*10^(2n-1)的最终结果就是把L的小
数点往右移动10^(n^2)位,然后把写着第n个素数的那些位置上的数
和小数点后的数全抹掉。比如说n=4,
[L*10^((4-1)^2))]*10^(2*4-1)=2003000050000000

这两项一减——当然就只剩第n个素数了:
2003000050000007-2003000050000000=7

所以说允许把具有无穷位小数的实数应用在素数表达公式上面是一种
“作弊”行为。因为在这无穷个位置里,我们可以预先去把所有的素
数都编好码,然后通过公式一个一个释放出来。我们可以看见在上面
的公式中,公式本身对素数的规律毫无揭示,只要把常数L改一改,
爱得到什么序列就可以得到什么序列,公式一点不变。所有关于素数
的信息都在L里面,而计算L要花的代价和直接去计算素数是一模一样
的……

在(一)中的两个公式的本质其实也和这个公式一样,只不过它们的
对素数的“编码”更加隐蔽(这也使得公式的形式比较漂亮)。

所以,在(三)里,我们不再作弊,我们将禁止使用实数,只能用整
数来给出只取素数值的公式。

[关闭][返回]