大整数的乘法(阶乘)

时间:2014-11-08 20:14:52

标签: c++ algorithm multiplication

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

1 个答案:

答案 0 :(得分:2)

三个可能的原因:

  • 它使用多个CPU核心(易于测试)
  • 它使用SIMD说明
  • 它使用GPU(罕见,但不是闻所未闻)