• 
    

    
    

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

      趣味數(shù)學(xué)——勾股數(shù)

      2021-08-27 16:12:46王德貴
      電腦報 2021年25期
      關(guān)鍵詞:股數(shù)鏈表勾股定理

      王德貴

      勾股定理是大家熟知的,勾股數(shù),就是構(gòu)成勾股定理的三個數(shù),即一個數(shù)的平方是另外兩個數(shù)的平方和。比如,32+42=52,那么3、4、5就是勾股數(shù)。那么在一定范圍內(nèi),有多少勾股數(shù)呢?我們在Scratch、Python和Applnventor_種環(huán)境中編程解答這一問題,并著重關(guān)注程序在不同環(huán)境中的運行效率。

      一、原理分析

      本例可以考慮3個數(shù),都從1開始用枚舉法來解決問題,但這種方法循環(huán)次數(shù)最多,100以內(nèi)的勾股數(shù)就需要計算1003=106,100萬次!根據(jù)測算Scratch中運行要至少3分鐘,Python運行不到1分鐘,Applnventor運行大約需要1分鐘,可見,它們各自運行的速度是不一樣的。當(dāng)然這主要是由程序語言決定的,Python運行最快,Scratch最慢。

      那么怎樣能夠減少運算量呢?新的思路是根據(jù)天系式a2+b2=C2可知,先確定c的值,那么a和b的值一定小于c,所以循環(huán)到等于即可,這樣就不用循環(huán)到最大值,從而減少運行時間。

      二、Scratch編程實現(xiàn)

      我們把滿足勾股定理的3個數(shù),加入鏈表,然后顯示出來,這個比較好理解。但運行后發(fā)現(xiàn),有重復(fù)的項(比如3、4、5和4、3、5),共104項實際應(yīng)為52項,說明恰好重復(fù)2次,那有辦法去除重復(fù)的項目嗎?

      我們把每個c值加入鏈表,然后在下次得到滿足條件的值時,就查詢一下,這幾個值在不在鏈表里:在,就是重復(fù),不加入鏈表:不在鏈表里,那就加入進(jìn)來!這樣就不會有重復(fù)的數(shù)據(jù)了。

      這段代碼的作用就是去重。如果a.b都包含在鏈表里,就說明是重復(fù)數(shù)據(jù),所以就做下標(biāo)記0:如果a.b都不包含在鏈表里,就說明沒有重復(fù)數(shù)據(jù),于是就將數(shù)據(jù)加入鏈表f去重后,顯示正常為52個。程序測算通過。

      三、Python編程實現(xiàn)

      Python程序的思路和Scratch編程類似,基本程序如下,但依然有重復(fù)的數(shù)據(jù)。

      所以仍然需要去重,在Python中,去重最簡單的當(dāng)數(shù)集合!這個和高中數(shù)學(xué)知識基本一樣的,其特點有二=:“確定性:對于任意一個元素,要么它屬于某個指定集合,要么它不屬于該集合,二者必居其一。互異性:同一個集合中的元素是互不相同的。無序性:任意改變集合中元素的排列次序,它們?nèi)匀槐硎就粋€集合?!?p>

      定義空集m=se“),雖然元素是放在大括號里,但定義m={}是定義了一個字典,不是集合,但如果定義m={3,4,5}卻是集合,這一點要特別注意。

      可以拓展為任意范圍內(nèi)的勾股數(shù),通過鍵盤輸入,確定最大和最小值??梢郧蟪鋈我夥秶鷥?nèi)的勾股數(shù)。

      四、Applnventor編程實現(xiàn)

      Applnventor設(shè)計的程序,編寫難度低又可以在手機上運行,這是它受到歡迎的原因之一。

      編程思路與Python不同,與Scratch類似,需要將滿足條件的值加入列表中,同時判斷在同一循環(huán)中,滿足條件的元素是否在列表中,以達(dá)到去重的目的。

      手機上運行測試,可以得到我們想要的結(jié)果。程序需要輸入求值范圍,如果范圍最大值不大于最小值,就提示錯誤,需要重新輸入。

      五、小結(jié)

      三種方法其實都要使用列表,算法也類似,但在Python中,集合是更簡便、快捷的方法。通過二種編程環(huán)境和應(yīng)用的比較,Python比Scratch要優(yōu)化很多,Applnventor編程有它獨有的特點,就是可以在手機上和其他應(yīng)用一樣使用。

      希望大家可以通過二款軟件的比較,掌握各自的特點和實用性,為進(jìn)一步學(xué)習(xí)提供參考和幫助。

      猜你喜歡
      股數(shù)鏈表勾股定理
      神奇的勾股數(shù)
      勾股定理緊握折疊的手
      用勾股定理解一類題
      應(yīng)用勾股定理的幾個層次
      《勾股定理》拓展精練
      基于二進(jìn)制鏈表的粗糙集屬性約簡
      跟麥咭學(xué)編程
      基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
      熟記勾股數(shù) 解題如神助
      “有趣的勾股數(shù)”活動花絮
      梁河县| 全南县| 蒙城县| 阿鲁科尔沁旗| 阿勒泰市| 安多县| 平邑县| 塔城市| 瑞丽市| 青铜峡市| 德格县| 盐边县| 璧山县| 任丘市| 新沂市| 米易县| 萍乡市| 渭源县| 石河子市| 开平市| 泽库县| 洪江市| 梧州市| 武城县| 阿图什市| 邵阳市| 江孜县| 温宿县| 包头市| 庆城县| 元朗区| 峨山| 东兰县| 赤城县| 渭源县| 商丘市| 晋城| 灵宝市| 南乐县| 汾西县| 岳普湖县|