哥德巴赫猜想的Python驗證_第1頁
哥德巴赫猜想的Python驗證_第2頁
哥德巴赫猜想的Python驗證_第3頁
哥德巴赫猜想的Python驗證_第4頁
哥德巴赫猜想的Python驗證_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯—6—哥德巴赫猜想的Python驗證

王德貴丁大為

哥德巴赫猜想,是世界近代三大數(shù)學難題之一。華羅庚是中國最早從事哥德巴赫猜想的數(shù)學家。1936—1938年,他赴英留學,師從哈代研究數(shù)論,并開始研究哥德巴赫猜想,驗證了幾乎所有的偶數(shù)猜想。1966年,華羅庚的學生陳景潤在對篩法做了新的重要改進后,證明白“1+2〞,他證明白任何一個充分大的偶數(shù),都可以表示為兩個數(shù)之和,其中一個是質數(shù),另一個或為質數(shù)或為兩個質數(shù)的乘積,被稱為“陳氏定理〞,這在當時影響很大,但之后就再也沒有什么研究進展了。一、哥德巴赫猜想內容

哥德巴赫猜想,是數(shù)學史上和質數(shù)有關的數(shù)學猜想,影響了一代又一代數(shù)學家。

1742年6月7日,德國數(shù)學家哥德巴赫在寫給有名數(shù)學家歐拉的一封信中,提出了一個大膽的猜想:任何不小于3的奇數(shù),都可以是三個質數(shù)之和(如:7=2+2+3。當時1仍屬于質數(shù))。

同年,6月30日,歐拉在回信中提出了另一個版本的哥德巴赫猜想:任何偶數(shù),都可以是兩個質數(shù)之和(如:4=2+2。當時1仍屬于質數(shù))。

這就是數(shù)學史上有名的“哥德巴赫猜想〞。由于1已經不歸為質數(shù),所以這兩個猜想分別變?yōu)椋?/p>

任何不小于7的奇數(shù),都可以寫成三個質數(shù)之和的形式;

任何不小于4的偶數(shù),都可以寫成兩個質數(shù)之和的形式。

20世紀,隨著計算機技術的發(fā)展,數(shù)學家們發(fā)現(xiàn)哥德巴赫猜想對于更大的數(shù)依舊成立。但自然數(shù)是無限的,無法判斷是否存在某一個足夠大的偶數(shù),成為哥德巴赫猜想的反例,但數(shù)學家們仍在不斷的摸索中,尋求著各種不同的解決方法。

假如想了解更深入的知識,大家可以參考相關資料。今天我們只利用Python做基本驗證。二、創(chuàng)意來源

在Python學習過程中,嘗試解決一些問題,特別是世界數(shù)學難題,不僅是一種樂趣,同時也能學到數(shù)學知識,了解一些數(shù)學發(fā)展歷史,也可以提高學生的學習興趣和學習積極性,更能加深理解程序的優(yōu)化與調試。三、設計思路

“關于偶數(shù)的哥德巴赫猜想〞,我們可以將要分析的任一正整數(shù)減去一個質數(shù),然后看看結果是不是也為質數(shù),這是一種方法;還有一種方法就是遍歷質數(shù),看看有沒有符合條件的兩個質數(shù)。

“關于奇數(shù)的哥德巴赫猜想〞,我們可以將要分析的任一正整數(shù)減去一個質數(shù),然后看看結果是不是也為質數(shù),這是一種方法;還有一種方法就是遍歷質數(shù),看看有沒有符合條件的三個質數(shù)。

這幾種方法的基礎都需要把正整數(shù)范圍內的質數(shù)先求出來。我們用列表形式將質數(shù)存儲,計算和訪問很便利。四、Python驗證

1.關于偶數(shù)的哥德巴赫猜想

任何不小于4的偶數(shù),都可以寫成兩個質數(shù)之和的形式。

這個猜想的理解是,4=2+2,6=3+3,8=3+5,10=3+

7,12=5+7……有無數(shù)個,我們無法一一列舉,通過編程也只能驗證有限范圍,否則運行時間將無限延長。

(1)方法一:遍歷質數(shù)列表,取出兩個質數(shù)驗證

程序有兩部分,一是建立質數(shù)列表,二是在列表中確定有沒有滿足條件的質數(shù)。有一組則程序終止,并顯示出來(圖1)。

也可以利用自定義函數(shù),程序如圖2。

要求出不小于這個偶數(shù)范圍內的質數(shù),于是把質數(shù)獲取做了自定義函數(shù),利用列表把質數(shù)列舉出來,然后便于下一步計算和驗證。

輸入不小于4的偶數(shù)后,調用自定義函數(shù),把這個范圍內的質數(shù)放在列表里,然后利用枚舉算法,在列表中取兩個數(shù),驗證是否等于輸入的偶數(shù),假如等于偶數(shù),即輸出。

這兩個程序運行結果是完全一樣的,它們都是在質數(shù)列表里任意取兩個數(shù),驗證其和是不是等于輸入的偶數(shù)。

(2)方法二:判斷偶數(shù)與質數(shù)的差是否為質數(shù)

這種方法減小了時間繁雜度,運行速度更快,程序如圖3。

測試結果如圖4。

2.關于奇數(shù)的哥德巴赫猜想

任何不小于7的奇數(shù),都可以寫成三個質數(shù)之和的形式。

根據前面的驗證,修改程序,便可以驗證“關于奇數(shù)數(shù)的哥德巴赫猜想〞。即多加一重for循環(huán),同時判斷輸入數(shù)與兩個質數(shù)之差是否也為質數(shù),假如是,則輸出算式,程序終止(圖5)。

驗證結果如圖6。

五、測試與改進

1.測試解的個數(shù)

我們前面的程序,只顯示了一組解。其實,輸入任意一個不小于4的偶數(shù),都至少能表示為一對質數(shù)之和,輸入任意一個不小于7的奇數(shù),都至少有一組能表示為三個質數(shù)之和,假如想全部算式都顯示出來,只要刪除程序中“break〞相關的語句即可。

譬如,“關于偶數(shù)的哥德巴赫猜想〞,修改程序如圖7。

運行結果如下,這里進行了去重(圖8)。

“關于奇數(shù)的哥德巴赫猜想〞,修改程序如下,運行后發(fā)現(xiàn)滿足條件的解好多,但卻是有重復的(圖9)。

輸入23,得到21組解,那如何去重呢?大家利用列表或集合都可以實現(xiàn),這里不再贅述(圖10)。

2.驗證是否包括所有整數(shù)

所有偶數(shù)和奇數(shù),我們不能一一驗證,那么在一定范圍內,是否包括所有值呢?我們來驗證一下。

(1)驗證一定范圍內所有偶數(shù)

將一定范圍內的質數(shù)存入列表,然后遍歷列表求和,假如和的所有值,包含了所有偶數(shù),則說明任意偶數(shù)都可以表示為兩個質數(shù)的和。

程序中,運用集合去重和做差,檢驗是否包含所有偶數(shù)。

50范圍內的驗證,同樣只顯示了一組解(圖11)。

(2)驗證一定范圍內所有奇數(shù)

將一定范圍內的質數(shù)存入列表,然后遍歷列表求和,假如和的所有值,包含了所有奇數(shù),則說明任意奇數(shù)都可以表示為三個質數(shù)的和。

程序中,同樣運用集合去重和做差,檢驗是否包含所有奇數(shù)。

50范圍內的驗證,同樣只顯示了一組解(圖12)。

通過測試,在一定范圍內,均得到了驗證,但數(shù)值過大時,用時較長。當然我們要證明一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論