計算兩個正整數(shù)n和m的乘積有一個很有名的算法稱為俄式乘法,其思想是利用了一個規(guī)模是n的解和一個規(guī)模是n/2的解之間的關(guān)系:n×m=n/2×2m(當(dāng)n是偶數(shù))或:n×m=(n-1)/2×2m+m(當(dāng)n是奇數(shù)),并以1×m=m作為算法結(jié)束的條件。例如,圖5.15給出了利用俄式乘法計算50×65的例子。據(jù)說十九世紀(jì)的俄國農(nóng)夫使用該算法并因此得名,這個算法也使得乘法的硬件實現(xiàn)速度非??欤驗橹皇褂靡莆痪涂梢酝瓿啥M(jìn)制數(shù)的折半和加倍。請設(shè)計算法實現(xiàn)俄式乘法。
您可能感興趣的試卷
你可能感興趣的試題
最新試題
根據(jù)活結(jié)點表的組織方式不同,分支限界法包括()等形式。
已知某樓房共20層,如果采用二分查找,最多猜()次就能猜出任意一個樓層。
在隊列式分支限界法解決裝載問題時,為什么在其改進(jìn)算法中,每次進(jìn)入左分支都要檢查更新bestw,而不是等搜索到達(dá)葉子結(jié)點時才去更新bestw,其目的是什么?()
有這樣一種算法,運行一次一定能找到問題的解,有時不知其是否正確,可以確定的是該解高概率(大于50%)是正確的。這種算法是()。
輸入數(shù)組(-1,0,1,-2,3),它的最大子段和是()。
回溯法的主要用途包括求問題的所有解、求問題的最優(yōu)解和求問題的任一解。
下列關(guān)于效率的說法正確的是()。
下列關(guān)于貪心算法與動態(tài)規(guī)劃算法說法正確的是()。
?有這樣一種算法,運行一次可能找不到問題的解,運行多次就一定能找到問題的解,且運行次數(shù)有界,這種算法是()。
在對Dijkstra算法進(jìn)行初始化時,如果兩個頂點之間沒有邊,則它們之間的距離為()。