Python驗證和視覺化之三大猜想 [ 冰雹猜想、角谷猜想、考拉茲猜想 ]

49.99%發表於2020-12-23

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

本篇文章來自騰訊雲 作者:Python小屋屋主

( 想要學習Python?Python學習交流群:1039649593,滿足你的需求,資料都已經上傳群檔案流,可以自行下載!還有海量最新2020python學習資料。 )
在這裡插入圖片描述

問題描述:

冰雹猜想、角谷猜想、考拉茲猜想說的是同一個問題:給定任意正整數,如果是偶數就除以2,如果是奇數就乘以3再加1,最終總能得到1。

20世紀30年代,德國漢堡大學的學生考拉茲研究過這個問題。1952年一位英國數學家獨立發現了它,幾年之後又被一位美國數學家所發現。在日本,這個問題最早是由角谷靜夫介紹到日本的,所以日本人稱它為“角谷猜想”。人們在運算過程中發現,算出來的數字忽大忽小,有的計算過程很長。比如從27算到1,需要112步。有人把演算過程形容為雲中的小水滴,在高空氣流的作用下,忽高忽低,遇冷結冰,體積越來越大,最後變成冰雹落了下來,而演算的數字最後也像冰雹一樣掉了下來,變成了1。因此人們又給這個猜想起了個形象的名字——冰雹猜想。

這個問題的證明方法可以自行查閱資料,本文使用程式碼生成一些隨機數來驗證一下。

參考程式碼:

在這裡插入圖片描述
執行結果:
在這裡插入圖片描述
把上面程式碼稍微修改一下,繪製水平柱狀圖,觀察幾個數字變為1時需要的計算次數:

在這裡插入圖片描述
執行結果(橫座標表示正整數,縱座標表示正整數變為1所需要的計算次數):
在這裡插入圖片描述
把上面的程式碼再稍微修改一下,使用折線圖視覺化,觀察幾個數字變為1的過程:

在這裡插入圖片描述
執行結果(橫座標表示第幾次計算,縱座標表示每次計算得到的中間結果,最後都變為1):
在這裡插入圖片描述

相關文章