Q
快速求冪的實現
2
A
回答
13
除非這是家庭作業,否則您可能不想推出自己的任意精確求冪的實現。計算你描述的類型的大指數是複雜的 - 除了性能。
我會推薦使用existing arbitrary precision arithmetic libraries, like GMP之一 - 其中大部分都有庫從C#訪問它們。
F#支持使用BigInt類的任意精度算法(如果您導入它所在的程序集,您也可以從C#訪問)。但是,我不知道BigInt指數是如何優化的。
如果您只是想了解指數運算的高效算法,您可能需要查看指數運算的Square-And-Multiply算法。
0
查看結果:IntX適用於LARGE整數。你可能必須編寫自己的權力實現,但由於支持乘法,所以這不應該太難。
由280Z28編輯:另一個包含fast Pow,ModPow和素數測試的實現是BigInteger實現(代碼項目),我過去曾在Project Euler問題上使用過 - 儘管我現在使用.NET 4.0並使用它的System.Numerics.BigInteger實現。
+0
如果計算結果非常重要,我會建議使用比IntX更成熟的庫。爲任意精度編寫正確的庫比看起來更難 - 許多小型項目還沒有機會檢測和解決困擾大多數實現的各類問題。 – LBushkin 2009-10-27 15:02:41
2
相關問題
- 1. horner算法 - 快速求冪
- 2. 快速矩陣求冪
- 3. Maple中的快速模冪運算
- 4. 快速排序python實現
- 5. 快速存儲桶實現
- 6. 實現快速排序
- 7. 快速排序實現
- 8. 快速實現發現的人數
- 9. 如何避免快速模冪溢出
- 10. 實現AWS競價實例請求的冪等性
- 11. C++:實現模冪運算
- 12. C++庫中的快速漸變實現?
- 13. 蟒蛇中的快速車實現
- 14. ArrayIndexOutOfBoundsException異常的快速排序實現
- 15. 快速排序實現中的ArrayIndexOutofBound
- 16. 快速排序實現中的問題
- 17. C++中的快速排序實現
- 18. Go中的快速排序實現
- 19. 在Linux中快速實現「GetCurrentThreadId」
- 20. 幫助實現快速排序
- 21. 快速排序:用Python實現
- 22. 3路快速排序(C實現)
- 23. Haskell二叉樹快速實現
- 24. 快速隨機森林算法實現
- 25. 使用SOAP實現快速結賬(PayPal)
- 26. 將遊戲實現爲快速遊戲
- 27. 在C++中快速實現MD5
- 28. 失敗快速迭代器實現
- 29. 實現快速查看QLPreviewController動畫
- 30. 並行快速排序C實現
優秀的答案。 – 2009-10-27 15:13:21
+1。很有意思。 – RichardOD 2009-10-30 16:34:44