書(shū)名: 趣味數(shù)學(xué)和Python編程作者名: 趙乘驥編著本章字?jǐn)?shù): 820字更新時(shí)間: 2022-07-29 14:35:02
8.1 考拉茲猜想的實(shí)驗(yàn)驗(yàn)證
現(xiàn)在我們來(lái)編程驗(yàn)證這個(gè)猜想,驗(yàn)證程序需要完成三個(gè)任務(wù):
(1)驗(yàn)證這個(gè)猜想在10000以內(nèi)是否都成立。
(2)記錄每一個(gè)數(shù)各經(jīng)過(guò)多少次運(yùn)算才回到1,并在二維圖上打一個(gè)點(diǎn),水平軸表示數(shù)本身,垂直軸表示運(yùn)算次數(shù),比如前面我們驗(yàn)證過(guò)的13,經(jīng)過(guò)9次運(yùn)算回到1,那么就在(13,9)這個(gè)位置標(biāo)一個(gè)點(diǎn)。
(3)如果某個(gè)數(shù)經(jīng)過(guò)若干次運(yùn)算以后,又回到它自己,那么會(huì)構(gòu)成一個(gè)循環(huán),一直不會(huì)結(jié)束,程序需要防止出現(xiàn)這種情況。
分析:
每次核算一次一個(gè)數(shù)是否能歸一,可能需要多次運(yùn)算,而且每計(jì)算一次,計(jì)數(shù)器還要加1,最終返回總運(yùn)算次數(shù)。可以用一個(gè)函數(shù)來(lái)完成這兩項(xiàng)工作,這個(gè)函數(shù)接收一個(gè)輸入,返回是否歸一以及計(jì)算次數(shù)。
計(jì)算結(jié)果可以存入一個(gè)列表里面,列表的索引就是這個(gè)數(shù),列表里存儲(chǔ)運(yùn)算次數(shù)。
可以用模塊matplotlib來(lái)進(jìn)行繪圖,第9章專門(mén)講述matplotlib。
代碼如下:

這個(gè)程序有幾處新的Python知識(shí)點(diǎn):
(1)import…as…句法,該語(yǔ)句的意思就是使用as之后的變量名來(lái)引用這個(gè)模塊。其好處是在程序中對(duì)模塊的引用變得簡(jiǎn)潔,在程序中本來(lái)應(yīng)該使用matplotlib.pyplot這個(gè)變量名,現(xiàn)在全部簡(jiǎn)寫(xiě)為plt。
(2)第24行,我們的函數(shù)調(diào)用方式是testResult,times=collatz(i),collatz()返回兩個(gè)變量,因此賦值表達(dá)式的左邊有兩個(gè)變量。
(3)第22行,定義了一個(gè)空的列表,第26行、28行通過(guò)列表函數(shù)append()往列表尾巴上添加一個(gè)新的元素。
(4)第30~33行用matplotlib畫(huà)圖(見(jiàn)圖8-1),這個(gè)模塊的內(nèi)容很豐富,下一章專門(mén)講如何用matplotlib來(lái)畫(huà)圖。本例中,fig=plt.figure(1)創(chuàng)建一個(gè)圖,此時(shí)圖中還沒(méi)有任何東西。
ax=fig.add_subplot(1,1,1),在這個(gè)圖上只畫(huà)一個(gè)坐標(biāo)平面ax,ax.scatter(range(1,10 000),L,color='r',marker='.'),在ax這個(gè)坐標(biāo)平面上畫(huà)一個(gè)散點(diǎn)圖,range(1,10 000),說(shuō)明X軸從1一直到10 000,每次增加1,參數(shù)L中存放從1到10 000的每個(gè)數(shù)字經(jīng)過(guò)多少次運(yùn)算才歸一。color='r'指定散點(diǎn)顏色是紅色,marker='.'指定點(diǎn)的形狀就是個(gè)圓點(diǎn)。

圖8-1 圖形化結(jié)果

圖8-1的橫坐標(biāo)表示1~10 000的每一個(gè)數(shù)字,縱坐標(biāo)是X軸對(duì)應(yīng)的數(shù)字經(jīng)過(guò)多少次運(yùn)算后才歸一,圖形上看明顯展示出了魚(yú)鱗狀的規(guī)律性。
- 湯姆·索亞歷險(xiǎn)記
- 海的女兒
- 深度教學(xué)
- 學(xué)生語(yǔ)言文字寫(xiě)作學(xué)習(xí)手冊(cè):教你學(xué)諺語(yǔ)(下)
- 趣味語(yǔ)文故事(語(yǔ)文教師的趣味教學(xué)設(shè)計(jì)與創(chuàng)新)
- 愛(ài)默生隨筆全集
- 2015中考滿分作文大全
- 2019年江蘇省常州市中考英語(yǔ)題庫(kù)(歷年真題+章節(jié)題庫(kù)+模擬試題)
- 中學(xué)生實(shí)現(xiàn)成績(jī)突破的40個(gè)引導(dǎo)方法
- 抒情寫(xiě)作指導(dǎo)與好詞好句好段(上)
- 青少年必讀常用詞語(yǔ)的故事(啟迪青少年的語(yǔ)文故事集)
- 華語(yǔ)文學(xué)大賽冠軍創(chuàng)意寫(xiě)作課.B卷:實(shí)力作品卷
- 高中生論述文寫(xiě)作十大核心能力
- 小學(xué)信息技術(shù)(第6冊(cè))教師用書(shū)
- 泰戈?duì)栐?shī)選(教育部新編語(yǔ)文教材指定閱讀書(shū)系)