2014-11-08 161 views
2

我意外地在互聯網上看到函數式編程語言SML允許進行任意精度整數運算。我在C++之前寫過大整數算術,我決定(爲了好奇)通過計算大數的階乘來比較我的實現與SML的。我發現,SML程序的工作速度比我的快了15倍。我的實現使用小學乘法算法。但據我所知,當乘法器沒有太大差別時,快速算法(例如FFT或Karatsuba算法)比小學時的乘法運算更好。在這種情況下,他們是因爲(n-1)!遠大於n。我的問題是什麼是其他可能的原因,SML程序工作得如此之快。大整數乘法(階乘)

回答

2

三種可能的原因:

  • 它使用多個CPU內核(便於測試)
  • 它採用SIMD說明
  • 它使用GPU(罕見,但並非聞所未聞)
+0

OP想要一些算法原因。 – peterh 2014-11-08 20:19:27

+0

彼得就是這樣。我不認爲其原因是算法。 – pointer 2014-11-08 20:23:30