卡拉楚巴算法

✍ dations ◷ 2025-11-11 05:41:34 #卡拉楚巴算法

Karatsuba算法、Karatsuba乘法、卡拉楚巴乘法、卡拉楚巴算法(俄语:Алгоритм Карацубы),是一种快速乘法算法,由1960年阿纳托利·阿列克谢耶维奇·卡拉楚巴(英语:Anatoly_Karatsuba)提出并于1962年发表。它将两个 n {displaystyle n} 位数字相乘所需的一位数乘法次数减少到了至多 3 n log 2 3 3 n 1.585 {displaystyle 3n^{log _{2}3}approx 3n^{1.585}} (如果 n {displaystyle n} 是2的乘方,则正好为 n log 2 3 {displaystyle n^{log _{2}3}} )。因此它比要 n 2 {displaystyle n^{2}} 次个位数乘法的经典算法要快。例如,对于两个1024位的数相乘( n = 1024 = 2 10 {displaystyle n=1024=2^{10}} ),卡拉楚巴算法需要 3 10 = 59049 {displaystyle 3^{10}=59049} 次个位数乘法,而经典算法需要 ( 2 10 ) 2 = 1048576 {displaystyle (2^{10})^{2}=1048576} 次。Toom–Cook算法是此算法更快速的泛型。对于充分大的 n ( n 1 ) {displaystyle n(ngg 1)} ,Schönhage-Strassen算法甚至更快,算法的时间复杂度为 O ( n log n log log n ) {displaystyle O(nlog nlog log n)}

值得一提的是,卡拉楚巴算法是第一个比小学二次乘法算法渐进快速的算法。

卡拉楚巴算法主要是用于两个大数的乘法,极大提高了运算效率,相较于普通乘法降低了复杂度,并在其中运用了递归的思想。基本的原理和做法是将位数很多的两个大数 x {displaystyle x} y {displaystyle y} 分成位数较少的数,每个数都是原来 x {displaystyle x} y {displaystyle y} 位数的一半。这样处理之后,简化为做三次乘法,并附带少量的加法操作和移位操作。

要计算12345和6789的乘积:

对只有三个数进行运算的乘法结果:

将三部分结果相加并相应地移位:

注意:中间第三次乘法运算的输入域小于前两次乘法的两倍,其输出域小于前两次乘法的四倍,并且基数为1000的进位是根据前两次乘法计算的,在计算这两个减法时必须考虑。

相关

  • 金印草金印草(学名:Hydrastis canadensis),又名白毛茛或北美黄莲,是多年生的毛茛科植物,原产于加拿大东南部及美国东北部。它们的根茎粗壮及呈黄色。在地上的茎略带紫色及有毛,地底下的呈
  • 物理物理光学(英语:physical optics),又称波动光学(wave optics)是光学的一个分支,研究的是关于干涉、衍射、偏振与其它在几何光学里射线近似不成立的种种现象。假设光波的波长超小于仪
  • 神探蒲松龄《神探蒲松龄》(英语:The Knight of Shadows: Between Yin and Yang),是一部于2019年上映的奇幻喜剧电影。由成龙、阮经天、钟楚曦、林柏宏领衔主演,2019年2月5日于中国大陆、台
  • 乔治·克莱门特·珀金斯乔治·克莱门特·珀金斯(George Clement Perkins,1839年8月23日-1923年2月26日),美国政治家,共和党人,曾任加利福尼亚州州长(1880年-1883年)和美国参议院议员(1893年-1915年)。
  • 吴克勤吴克勤(14世纪?-1449年),吴允诚三子,蒙古人,明朝军事将领。吴克勤早年随父、兄吴克忠归附明朝,后屡次与父参与明成祖北征。土木之变时,其与兄吴克忠俱殁于阵,其赠遵化伯,谥僖敏。有一子
  • JR京都线.mw-parser-output .RMbox{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.mw-parser-output .RMinline{float:none
  • 波尔斯卡瓦河坐标:.mw-parser-output .geo-default,.mw-parser-output .geo-dms,.mw-parser-output .geo-dec{display:inline}.mw-parser-output .geo-nondefault,.mw-parser-output .geo-multi-punct{display:none}.mw-parser-output .longitude,.mw-parser-output .latitude{white-space:n
  • 阿拉套广场阿拉套广场 (吉尔吉斯语:Ала-тоо аянты, Template:IPA-ky; 俄语:Площадь Ала-Тоо, .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Gentium Alternative","TITUS Cyberbit Basic","Arial Unico
  • 1989年中国足球甲A联赛1989年中国足球甲A联赛是中国足协举行的首届中国足球甲级A组联赛,参赛球队为1988年中国足球甲级联赛前8名。联赛分三阶段进行,第一阶段(1989年6月15日至6月25日,地点:大连、青岛);第二阶段(7月15日至7月24日,地点:天津、济南);第三阶段(10月28日至11月4日,地点:合肥、南京)。双循环赛制,每名国脚加1分。冠军由国家二队夺得。专业联赛时期:1989 • 1990 • 1991 • 1992 • 1993职业联赛时期:1994 • 1995 • 1996 • 1997 • 1998 
  • 恩克巴雅尔 (伊克昭盟盟长)恩克巴雅尔(?-1858年)蒙古族,鄂尔多斯右翼前末旗人,伊克昭盟盟长。1838年,恩克巴雅尔继袭右翼前末旗札萨克一等台吉。1851年,恩克巴雅尔出任伊克昭盟盟长兼鄂尔多斯济农。1858年,恩克巴雅尔逝世。