Python基于輾轉(zhuǎn)相除法求解最大公約數(shù)的方法示例
本文實(shí)例講述了Python基于輾轉(zhuǎn)相除法求解最大公約數(shù)的方法。分享給大家供大家參考,具體如下:
之前總結(jié)過一次高德納TAOCP中的最大公約數(shù)求解,其實(shí)課后題中的算法修改要求實(shí)現(xiàn)的是輾轉(zhuǎn)相除法求解最大公約數(shù)。
這個(gè)題目我最初的理解理解錯(cuò)了,自然也沒有做出標(biāo)準(zhǔn)答案?,F(xiàn)在按照標(biāo)準(zhǔn)答案的解答寫一下相應(yīng)的代碼實(shí)現(xiàn):
# -*- coding:utf-8 -*- #! python2 def MaxCommDivisor(m,n): while m * n != 0: m = m % n if m == 0: return n else: n = n % m if n == 0: return m print(MaxCommDivisor(55,120))
程序的執(zhí)行結(jié)果:
交換一下兩個(gè)數(shù)字的位置,代碼如下:
# -*- coding:utf-8 -*- #! python2 def MaxCommDivisor(m,n): while m * n != 0: m = m % n if m == 0: return n else: n = n % m if n == 0: return m print(MaxCommDivisor(120,55))
程序的執(zhí)行結(jié)果:
題目提示中提到了會(huì)降低效率,通過上面的代碼來看,效率的損失應(yīng)該是在除法以及判斷上。在此,把之前算法的代碼拿過來對(duì)比一下:
def CommDevisor(m,n): r = m % n while r != 0: m = n n = r r = m % n return n print(CommDevisor(120,25))
運(yùn)行結(jié)果:
新算法在循環(huán)中,多了一個(gè)除法以及比較操作。其實(shí),比較的效率還是不錯(cuò)的,但是除法的運(yùn)算會(huì)導(dǎo)致效率的降低。
PS:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:
在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python基礎(chǔ)之函數(shù)基本用法與進(jìn)階詳解
這篇文章主要介紹了Python基礎(chǔ)之函數(shù)基本用法與進(jìn)階,結(jié)合實(shí)例形式總結(jié)分析了Python函數(shù)的定義、參數(shù)、返回值及遞歸等相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01PyTorch: Softmax多分類實(shí)戰(zhàn)操作
這篇文章主要介紹了PyTorch: Softmax多分類實(shí)戰(zhàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07淺談Keras中shuffle和validation_split的順序
這篇文章主要介紹了淺談Keras中shuffle和validation_split的順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python時(shí)間的精準(zhǔn)正則匹配方法分析
這篇文章主要介紹了Python時(shí)間的精準(zhǔn)正則匹配方法,結(jié)合實(shí)例形式對(duì)比分析了Python針對(duì)時(shí)間格式相關(guān)正則匹配技巧,需要的朋友可以參考下2017-08-08Python數(shù)據(jù)分析numpy文本數(shù)據(jù)讀取索引切片實(shí)例詳解
這篇文章主要為大家介紹了Python數(shù)據(jù)分析numpy文本數(shù)據(jù)讀取索引切片實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08