国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

趣味數學——勾股數

2021-08-27 16:12王德貴
電腦報 2021年25期
關鍵詞:勾股定理列表編程

王德貴

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

一、原理分析

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

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

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

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

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

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

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

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

所以仍然需要去重,在Python中,去重最簡單的當數集合!這個和高中數學知識基本一樣的,其特點有二=:“確定性:對于任意一個元素,要么它屬于某個指定集合,要么它不屬于該集合,二者必居其一?;ギ愋裕和粋€集合中的元素是互不相同的。無序性:任意改變集合中元素的排列次序,它們仍然表示同一個集合?!?p>

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

可以拓展為任意范圍內的勾股數,通過鍵盤輸入,確定最大和最小值??梢郧蟪鋈我夥秶鷥鹊墓垂蓴怠?h3>四、Applnventor編程實現(xiàn)

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

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

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

五、小結

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

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

猜你喜歡
勾股定理列表編程
《勾股定理》拓展精練
玩游戲學編程,Blockly Games上手玩
擴列吧
紡織機上誕生的編程
編程屋完成數百元萬天使輪融資
學編程,先畫畫
列表法解分式方程問題探索
對勾股定理的三點看法
用勾股定理就對了!
列表畫樹狀圖各有所長
陕西省| 泾川县| 明水县| 江源县| 裕民县| 化州市| 辉南县| 德保县| 阿拉善右旗| 伊宁市| 中方县| 井陉县| 颍上县| 禹州市| 利川市| 兴宁市| 绥阳县| 吐鲁番市| 英超| 苗栗市| 甘泉县| 金川县| 重庆市| 辰溪县| 东阳市| 高平市| 拉萨市| 内乡县| 平遥县| 汕头市| 泽库县| 广昌县| 抚顺市| 西林县| 清河县| 郑州市| 望谟县| 苏尼特左旗| 九龙坡区| 天气| 习水县|