大整数的乘积(阶乘)

Multiplicaton of big integers (factorial)

本文关键字:阶乘 整数      更新时间:2023-10-16

我在互联网上偶然看到函数式编程语言SML允许进行任意精度的整数运算。我之前在C++上写过大整数运算,我决定(出于好奇)通过计算大数的阶乘来将我的实现与SML的实现进行比较。我发现SML程序的工作速度大约是我的15倍。我的实现使用小学的乘法算法。但据我所知,当乘法器没有太大区别时,快速算法(如FFT或Karatsuba算法)比小学乘法效果更好。在这种情况下,它们是,因为(n-1)!n大得多。我的问题是SML程序运行速度如此之快的其他可能原因是什么。

三个可能的原因:

  • 它使用多个CPU核心(易于测试)
  • 它使用SIMD指令
  • 它使用GPU(罕见,但并非闻所未闻)