跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 卡拉楚巴算法 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
卡拉楚巴算法
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''Karatsuba 算法'''、'''Karatsuba 乘法'''、'''卡拉楚巴乘法'''、'''卡拉楚巴算法'''(俄語:Алгоритм Карацубы), 是一種快速乘法算法,由一九六空年阿納托利 ・ 阿列克謝呢維奇 ・ 卡拉楚巴提出並且佇一九六二年發表。伊將這兩个 $ n $ 位數字相乘所需要的一位數乘法次數減到上濟 $ 三 n ^ { \ log _ { 二 } 三 } \ approx 三 n ^ { 一爿五八五 } $(若是 $ n $ 是二的所在,愛做拄好的為 $ n ^ { \ log _ { 二 } 三 } $)。 因此伊比欲 $ n ^ { 二 } $ 次個位數乘法的經典算法愛緊。比如講,對兩个一千空二十四位的數相乘($ n=一千空二十四=二 ^ { 十 } $), 卡拉楚巴算法需要 $ 三 ^ { 十 }=五交九千空四十九 $ 次個位數乘法,經典算法需要 $ ( 二 ^ { 十 } ) ^ { 二 }=一百空四石八千五百七十六 $ 次。Toom–Cook 算法是此算法閣較緊的泛型。對充分大的 $ n ( n \ gg 一 ) $,Schönhage-Strassen 做算法甚至閣較緊,算法的時間複雜度做 $ O ( n \ log n \ log \ log n ) $。 價值咧講的是,㧎拉楚巴算法是第一个比小學二擺乘法算法漸漸進快速的算法。 ==算法== ===基本步數=== 㧎拉楚巴算法主要是用佇兩个大數的乘法,真大提高了運算效率,佮普通乘法比較低複雜度,並佇咧其中運用著遞歸的思想。基本的原理佮做法是將位數真濟的兩个大數 $ x $ 和 $ y $ 分做位數較少的數,逐家攏是原來 $ x $ 和 $ y $ 位數的一半。按呢處理了後,簡化為做三擺乘法,閣附帶少量的加法操作佮移位操作。 ===示例=== 愛計算一鼻兩千三百四十五佮六千七百八十九的乘積: : 一孵兩千三百四十五=十二·_ 一千 _ + 三百四十五 : 六千七百八十九=六·_ 一千 _ + 七百八十九嘿干焦三个數進行運算的乘法結果: : _ z _ 二=十二 × 六=七十二 : _ z _ 零=三百四十五 × 七仔八十九=二十七石兩千兩百空五 : _ z _ 一=( 十二 + 三百四十五 ) × ( 六 + 七仔八十九 ) − _ z _ 二 − _ z _ 零=三仔五十七 × 七仔九十五 − 七十二 − 二十七石兩千兩百空五=二十八學三千八百十五 − 七十二 − 二十七石兩千兩百空五=一爿一千五百三十八葩將三部份結果相加並相應地移位: : 結果=_ z _ 二·( _ B _ m ) 二 + _ z _ 一·( _ B _ m ) 一 + _ z _ 零·( _ B _ m ) 零 , i . e . : 結果=七十二 ・ _ 一千 _ 二 + 一孵一千五百三十八·_ 一千 _ + 二十七石兩千兩百空五=八千三百八十一孵空兩百空五 . 注意:中央第三擺乘法運算的輸入域小於前兩擺乘法的兩倍,其實輸出域較細佇前兩擺乘法的四倍,並且基數為一千的進位是根據前兩改的乘法計算的,佇咧計算這兩个減法的時著愛考慮。 ==實現== ===偽代碼實現=== ===Python 代碼實現=== ==參考文獻== * Karatsuba's Algorithm for Polynomial Multiplication * 埃里克 ・ 韋斯坦因為 . Karatsuba Multiplication . MathWorld . * Bernstein , D . J . , " Multidigit multiplication for mathematicians " . Covers Karatsuba and many other multiplication algorithms . ==外部鏈接== * 卡拉楚巴多項式乘法算法 * 埃里克 ・ 韋斯坦因為 . Karatsuba Multiplication(卡拉楚巴乘法). MathWorld . * Bernstein , D . J . , " Multidigit multiplication for mathematicians " . Covers Karatsuba and many other multiplication algorithms . [[分類: 待校正]]
返回到「
卡拉楚巴算法
」。