图姆-库克算法 编辑
图姆-库克算法,有时也被称为Toom-3算法,由安德鲁·图姆命名,他提出了这种算法的基本原理,而斯蒂芬·库克则最先用简洁的形式描述并改进了这种算法,将其作为大整数的乘法算法
4
图片 0 图片
评论 0 评论
匿名用户 · [[ show_time(comment.timestamp) ]]
[[ nltobr(comment.content) ]]
相关
卡拉楚巴算法是一种快速乘法算法,它由阿纳托利·阿列克谢耶维奇·卡拉楚巴于1960年提出并于1962年发表。它将两个



n


{\displaystyle n}

位数字相乘所需的一位数乘法次数减少到了至多



3

n


log

2



3



3

n

1.585




{\displaystyle 3n^{\log _{2}3}\approx 3n^{1.585}}

。因此它比要




n

2




{\displaystyle n^{2}}

次个位数乘法的乘法算法算法要快。例如,对于两个1024位的数相乘,卡拉楚巴算法需要




3

10


=
59049


{\displaystyle 3^{10}=59049}

次个位数乘法,而经典算法需要





2


=
1048576


{\displaystyle ^{2}=1048576}

次。图姆-库克算法是此算法更快速的泛型。对于充分大的



n



{\displaystyle n}

,Schönhage-Strassen算法甚至更快,算法的时间复杂度为



O



{\displaystyle O}

卡拉楚巴算法是一种快速乘法算法,它由阿纳托利·阿列克谢耶维奇·卡拉楚巴于1960年提出并于1962年发表。它将两个



n


{\displaystyle n}

位数字相乘所需的一位数乘法次数减少到了至多



3

n


log

2



3



3

n

1.585




{\displaystyle 3n^{\log _{2}3}\approx 3n^{1.585}}

。因此它比要




n

2




{\displaystyle n^{2}}

次个位数乘法的乘法算法算法要快。例如,对于两个1024位的数相乘,卡拉楚巴算法需要




3

10


=
59049


{\displaystyle 3^{10}=59049}

次个位数乘法,而经典算法需要





2


=
1048576


{\displaystyle ^{2}=1048576}

次。图姆-库克算法是此算法更快速的泛型。对于充分大的



n



{\displaystyle n}

,Schönhage-Strassen算法甚至更快,算法的时间复杂度为



O



{\displaystyle O}