首页
学习
活动
专区
圈层
工具
发布

谷歌提出「超大数相乘」算法,量子版递归有望成真!

对于涉及大数的乘法, Karatsuba的方法比小学法的步骤要少得多。...同样的算式使用Karatsuba的方法,只需要做3次乘法,以及少量的加法操作和移位操作。...经典计算机运行Karatsuba方法时,它会随着运行进行而删除信息。例如,在将两位数重组为四位数之后,它会忘记之前的两位数,只关心四位数本身。...针对各种输入尺寸的Karatsuba乘法和教科书乘法的Q#implementation所使用的Toffoli gate和量子位数的双对数坐标图 值得注意的是,在作者的实现中,Karatsuba乘法比教科书乘法更高效的交叉点...因此,对于Karatsuba乘法在Shor算法中的实际应用,作者并没有得出任何结论。 他表示,这种类似于经典尾调用优化的优化应该适用于各种递归量子算法。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    形式化验证加速RSA运算与部署的技术解析

    在Graviton2上,这种方法的好处在于我们可以使用著名的Karatsuba算法,用成本较低的加法操作来换取昂贵的乘法操作。...Karatsuba算法将一次乘法分解为三次较小的乘法,并结合一些寄存器移位操作。它可以递归执行,对于大数运算,比标准乘法算法更高效。...我们对2,048位和4,096位等2的幂次比特大小使用了Karatsuba算法。对于其他大小(如3072位),我们仍然使用二次乘法。...当两个操作数相等时,Karatsuba乘法可以进一步优化,我们还专门编写了平方运算函数。通过这些优化,与原始代码相比,我们在2,048位和4,096位RSA签名上实现了31-49%的速度提升。...通过对蒙哥马利约减进行额外调整以预计算Karatsuba中使用的一些数字,SLOTHY优化使得2,048/4,096位吞吐量提升了95-120%,3,072位提升了46%。

    7010

    大整数乘法实现日志:从查表法到逐位运算

    核心查表法:预计算矩阵分治法优化:Karatsuba算法通过分治策略将时间复杂度从O(n²)降至O(n^1.59)。...例如,将X=A10^(n/2)+B和Y=C10^(n/2)+D相乘时,传统方法需4次乘法,而Karatsuba仅需3次。在分治法中,预先计算小规模乘法的结果(如所有可能的m位小数相乘),存储为表格。...例如,在Karatsuba算法中,若将大数分为m位块,预先计算所有m位小数的乘积,后续递归调用时直接引用,减少计算量。...总结与评价大整数乘法通过模拟竖式计算实现,查表法与分治算法(如Karatsuba)可显著优化性能。进位处理是核心细节,需确保每次累加后正确传递进位。...但对于极大数,有更高效的算法(如 Karatsuba 算法、FFT based 算法)。

    33520

    递归的递归之书:第五章到第九章

    Karatsuba 乘法是一种快速的递归算法,由 Anatoly Karatsuba 于 1960 年发现,可以使用加法、减法和预先计算的所有单个数字乘积的乘法表来相乘整数。...以下是 Karatsuba 算法的五个步骤: 将a和c相乘,可以从乘法查找表中查找,也可以通过对karatsuba()进行递归调用来实现。...我们的karatsuba()函数还依赖于一个名为padZeros()的辅助函数,它在字符串的左侧或右侧填充额外的零。这种填充是在 Karatsuba 算法的第五步中完成的。...最后,将x × y的乘法分解为三个较小乘积的乘法,需要进行三次递归调用:karatsuba(a, c)、karatsuba(b, d)和karatsuba((a + b), (c + d))。...通过仔细研究本节,您可以理解 Karatsuba 算法背后的代数。我无法理解的是,23 岁的学生 Anatoly Karatsuba 是如何在不到一周的时间里聪明地设计出这个算法的。

    94010
    领券