• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      數(shù)學(xué)黑洞495的Python求解和驗(yàn)證

      2022-03-08 04:00:36丁大為王德貴
      電腦報(bào) 2022年8期
      關(guān)鍵詞:四位數(shù)三位數(shù)列表

      丁大為 王德貴

      通過前期的文章,我們了解了“數(shù)學(xué)黑洞6174”,也確實(shí)感到了數(shù)學(xué)中的玄妙??ㄆ绽卓枺↘aprekar)黑洞,又稱重排求差黑洞,其計(jì)算過程稱為卡普雷卡爾運(yùn)算,這個(gè)現(xiàn)象稱歸斂,“6174”稱歸斂結(jié)果。四位數(shù)的黑洞是“6174”,那三位數(shù)有同樣的黑洞嗎?

      今天我們用Python來求解和驗(yàn)證。

      數(shù)學(xué)黑洞問題,經(jīng)過幾天的研究,真的感覺很有意思,那么除了四位數(shù)的6174,三位數(shù)、五位數(shù)是不是也有類似的規(guī)律呢,這期分享三位數(shù)的黑洞。

      找到三位數(shù)的數(shù)學(xué)黑洞是一個(gè)求解和驗(yàn)證的問題,也要解決以下三個(gè)問題。

      一是輸入任意一個(gè)三位數(shù)(不包含全部相同的數(shù)字),驗(yàn)證最后經(jīng)過運(yùn)算是不是得到一個(gè)固定的值;二是在一定范圍內(nèi),是不是所有數(shù)都能得到這個(gè)固定值;三是要得到這個(gè)值最多需要多少步驟。

      思路與四位數(shù)驗(yàn)證一樣,首先要將三位數(shù)分解開單個(gè)數(shù)字,存儲(chǔ)在新列表中,然后排序列表,輸出最大和最小數(shù),做差,然后再存儲(chǔ)在新列表中,循環(huán)操作,看看最后是不是得到一個(gè)固定的值。

      程序涉及的是中國電子學(xué)會(huì)編程等級考試四級知識點(diǎn)。

      1.求解

      即求解三位數(shù)的歸斂結(jié)果,是什么樣的數(shù)據(jù)。

      參照四位數(shù)驗(yàn)證方法,程序設(shè)計(jì)(如圖1)。

      將輸入的三位數(shù)轉(zhuǎn)化為列表,然后判斷數(shù)字是否完全相同,如果不完全相同,則循環(huán)執(zhí)行將列表中的三個(gè)數(shù)字排序,取出最大和最小的數(shù),做差,在屏幕上顯示出來,同時(shí)添加到列表m中,如果有歸斂結(jié)果,則會(huì)有重復(fù)數(shù)據(jù),于是判斷列表的長度和轉(zhuǎn)換為集合后的長度比較,如果不相等,則輸出最后一個(gè)數(shù)據(jù),即為歸斂結(jié)果。

      比如輸入:123,運(yùn)行結(jié)果(如圖2)。

      大家可以看到,歸斂結(jié)果為495!那其他三位數(shù)也是歸斂結(jié)果嗎?下面我們來驗(yàn)證一下。

      2.驗(yàn)證

      即是輸入任意一個(gè)數(shù)字不完全相同的三位數(shù),進(jìn)行驗(yàn)證,看看能不能得到495,需要幾步。這里利用了自定義函數(shù)。

      (1)遞推法

      輸入一個(gè)三位數(shù),但三個(gè)數(shù)字不能完全相同,將其轉(zhuǎn)換為列表,排序、連接、轉(zhuǎn)換出最大值和最小值,做差,再轉(zhuǎn)換為列表,如果不夠3位,則添加“0”,進(jìn)行下一輪循環(huán),直到得到“495”,然后輸出轉(zhuǎn)換用了多少次(如圖3)。比如驗(yàn)證輸入123,5次后獲得結(jié)果495。

      (2)遞歸法

      遞歸與遞推的不同之處,是調(diào)用了自身,達(dá)到循環(huán)的目的。過程和方法與遞推類似。不同的是,遞推算法中第7行的n=0去掉了,這是因?yàn)槿绻由线@行,每次調(diào)用自身的時(shí)候,n都會(huì)歸0,不能計(jì)數(shù),因而必須先設(shè)置n=0,然后在自定義函數(shù)中用“global n”。兩種方法驗(yàn)證的結(jié)果是完全一樣的(如圖4)。

      3.范圍

      即是驗(yàn)證一定范圍內(nèi)所有數(shù)字不完全相同的三位數(shù),看看能不能得到495,在這個(gè)范圍內(nèi)需要最多的步數(shù)是多少。

      (1)遞推法

      通過遞推法驗(yàn)證(如圖5)。

      下面是在100-999范圍內(nèi)的遞推法驗(yàn)證,即所有三位數(shù)的驗(yàn)證結(jié)果。在數(shù)字完全一樣時(shí),給出提示,從驗(yàn)證結(jié)果看,所有不完全相同的三位數(shù),經(jīng)過運(yùn)算均可以得到“495”,并運(yùn)算的最多次數(shù)是“6”(如圖6)。

      (2)遞歸法

      遞歸法和遞推法一樣,也是在驗(yàn)證的基礎(chǔ)上,驗(yàn)證一定范圍內(nèi)的所有整數(shù),經(jīng)過運(yùn)算是不是都能得到“495”,并輸出最多的運(yùn)算次數(shù)。不同的是遞歸是通過調(diào)用自身,達(dá)到循環(huán)的目的。

      同樣,遞歸法需要將遞推算法中的n=0去掉,而在遍歷前設(shè)置n=0,然后在自定義函數(shù)中設(shè)置為“global n”。m為最大次數(shù)變量(如圖7)。

      下面是在100-999范圍內(nèi)的遞歸法驗(yàn)證,即所有三位數(shù)的驗(yàn)證結(jié)果。在數(shù)字完全一樣時(shí),給出提示,從驗(yàn)證結(jié)果看,所有不完全相同的三位數(shù),經(jīng)過運(yùn)算均可以得到“495”,并運(yùn)算的最多次數(shù)是“6”(如圖8)。

      我們看到,兩種方法的驗(yàn)證結(jié)果是完全一樣的。

      通過驗(yàn)證,遞推和遞歸方法得出的結(jié)果完全相同。這是在“6174”驗(yàn)證的基礎(chǔ)上,修改程序后,比較容易得到的。那你注意到三位數(shù)和四位數(shù)在驗(yàn)證的時(shí)候,有什么相同點(diǎn)和不同點(diǎn)嗎?

      我們只用Python做了驗(yàn)證,有興趣的老師和同學(xué)可以參考“6174”的方法用Scratch和APPInventor去驗(yàn)證。

      本文是我自己的研究過程和心得,有不妥之處,請各位老師和同學(xué)斧正!

      猜你喜歡
      四位數(shù)三位數(shù)列表
      巧用列表來推理
      擺三位數(shù)
      學(xué)習(xí)運(yùn)用列表法
      積是三位數(shù)還是四位數(shù)
      擴(kuò)列吧
      乘積最大的兩個(gè)數(shù)
      擺三位數(shù)
      三位數(shù)密碼
      小花鹿寫數(shù)
      不含3-圈的1-平面圖的列表邊染色與列表全染色
      兰州市| 疏附县| 宣汉县| 南京市| 会同县| 牙克石市| 吉水县| 汉中市| 上虞市| 博乐市| 德江县| 南江县| 德安县| 宝兴县| 清镇市| 梅州市| 黑河市| 镇原县| 航空| 建瓯市| 营山县| 綦江县| 益阳市| 仲巴县| 衡水市| 汝南县| 翁源县| 南木林县| 沙坪坝区| 枝江市| 旺苍县| 南陵县| 萨嘎县| 甘孜县| 东兰县| 西丰县| 宁明县| 巴彦淖尔市| 寻乌县| 海林市| 新昌县|