2
A
回答
2
2
您使用的編號對於JavaScript來說太大了。 int的最大大小是2^53 - 小於7^35。
0
需要更高精度的唯一值是中間結果。因此,如果您的算法不需要有問題的中間結果,則無需更高精度的變量就可以避免該問題。
下面的公式可用於此: (ab)%c =(a%c)(b%c)%c
這意味着Math.pow(7,35)%71 =((Math.pow (7,17)%71)*(Math.pow(7,18)%71))%71.
現在中間結果較小,但可能仍然太大。所以我們需要進一步分解並將模塊運算符應用於較小的中間結果。
所以,你可以做這樣的事情: Math.pow((Math.pow(7,7)%71),5)%71
但你可能需要爲整數爲此至極的變量(否則,你可以通過對結果進行硬編碼來避免這個問題)。 因此,您需要了解您可以預期的值的範圍,並定義一個算法,將功率計算分解爲若干塊,當輸入處於預期範圍內時,結果總是足夠小。
無論您選擇如何計算,使用更高精度的變量(使用專門的庫)或specilized算法進行計算,您都應始終聲明輸入以確保計算僅在您確定時才返回值可以提供正確的價值。否則,對於任何不瞭解其有效範圍的人來說,您的實施變得不可靠。否則,返回一個異常消息,該消息明確指出哪些輸入或輸入組合是問題以及原因。
相關問題
- 1. 在PHP中計算Modulo 256校驗和
- 2. 模塊化算法計算錯誤
- 3. 計算錯誤
- 4. 計算錯誤
- 5. Objective-C中的Modulo運算符返回錯誤結果
- 6. Modulo運算符的替代
- 7. SymPy中的Modulo 2算法
- 8. Modulo在C,錯誤的輸出
- 9. 計算Heroku錯誤
- 10. SASS計算錯誤?
- 11. 錯誤的計算
- 12. JSTL計算錯誤
- 13. VB.NET計算錯誤
- 14. Javascript計算錯誤
- 15. JavaScript計算錯誤
- 16. 錯誤的計算?
- 17. Javascript計算錯誤
- 18. Java計算錯誤
- 19. modulo函數
- 20. 語法錯誤 - 可計算
- 21. FORTRAN數組計算錯誤
- 22. Excel 2007 VBA計算錯誤
- 23. 計算wordpress代碼錯誤
- 24. 相機extrinsics計算錯誤
- 25. 日計算錯誤(?)PHP
- 26. BMI計算器錯誤
- 27. 計算百分比錯誤
- 28. 行列式計算錯誤
- 29. C++ \ CLI DateTime計算錯誤
- 30. Netlab - 如何計算錯誤?
你超出了JavaScript數字的準確性。 – Pointy
有沒有解決問題的方法? –
也許你可以四處尋找無限精度的定點庫。 – Pointy