程序员的数学思维修炼(趣味解读)哥德巴赫猜想

发布于:2022-10-14 ⋅ 阅读:(445) ⋅ 点赞:(0)

说到素数的相关知识,就离不开哥德巴赫猜想。本节简单介绍哥德巴赫猜想的相关内

容,了解什么是哥德巴赫猜想,怎么进行哥德巴赫猜想验证。

2.4.1    哥德巴赫猜想是什么

1742年,在给欧拉的信中,哥德巴赫提出了以下猜想:

 

因现今数学界已经不使用“1也是素数”这个约定,当初猜想的现代陈述为:

 

欧拉在回信中也提出另一等价版本,即:

 

今日常见的猜想陈述为欧拉的版本,把命题:

 

1966年,我国的陈景润证明了“1+2”的成立,即:

 

对于哥德巴赫猜想的实际验证表明,至少4~1014以下的偶数都能表示成两个素数之 和。很多时候,偶数表示成两个素数和的方法还不止一种,例如:

 

大数学家欧拉相信这个猜想是正确的,但他不能证明。

叙述如此简单的问题,连欧拉这样首屈一指的数学家都不能证明,这个猜想便引起了 许多数学家的注意。从哥德巴赫提出这个猜想至今,许多数学家都不断努力想攻克它,但 都没有成功。

为什么说没有成功呢?由于在数列中,某一个数是否为素数是没有规律的,只能逐个 推算。而对于一个很大的整数,要求出其等于两个素数之和,其计算量是非常巨大的,例 如,要求1万位或10万位的整数是否等于两个素数之和,不要说手工计算,就是用计算机 来推算,其程序设计的工作量都显得很复杂,需要处理大量的数据存储和转换过程。当  然,对于一些比较小的整数,则可以很容易地求出来其等于两个素数之和。

2.4.2    数值验证

与不少数学猜想一样,数值上的验证也是哥德巴赫猜想的重要一环。 1938年,尼尔斯·皮平 (Nils Pipping) 验证了所有小于105的偶数。  1964年,M ·L · 斯坦恩和P·R · 斯坦恩验证了小于107的偶数。

1989年,A ·格兰维尔将验证范围扩大到2× 1010。

1993年,Matti K. Sinisalo验证了4× 1011以内的偶数。

2000年,Jorg Richstein验证了4× 1014以内的偶数。

至2012年2月为止,数学家已经验证了3.5 × 1018以内的偶数,在所有的验证中,没有 发现偶数哥德巴赫猜想的反例。

虽然不是数学家,但身为程序员的我们也可进行一翻哥德巴赫猜想的验证,例如:

首先检验:6=3+3;

接着检验:8=3+5;

接着检验:10=5+5;

… …    … …

下面利用计算机的快速计算能力,编写程序验证哥德巴赫猜想。

对于哥德巴赫猜想的验证,算法很简单,其基本思路是:设N为大于等于6的一个偶

数,可将其分解为N1和N2两个数,分别检查N1和N2是否为素数,如都是,则在该数中得 到验证。若N1不是素数,就不必再检查N2是否素数。先从N1=2开始,检验N1和N2   (N2

=N-N1) 是否素数。然后是N1+2 ,再检验N1 、N2是否素数… … ,直到N1=N/2为止。

为了提高程序的效率,可对程序进行优化,首先根据Eratosthenes算法将指定范围中 的素数都筛选出来保存到一个数组中,接着对整数N进行分解和判断。

根据上面的思路,编写相应的C程序如下:

 

 

执行以上程序,输入1000000  (一百万) ,验证1000000以内的偶数,运行结果如图2-

12所示。

 

图2-12

从图2-12中的运行结果可看出,在1000000以内的所有偶数都通过了验证。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到