我使用F#BigInteger類的戰俘功能時,我的編譯器告訴我:F#中的BigInteger中有Pow的替代嗎?
這種結構已被棄用。該成員已被刪除,以確保這一 類型是二進制與.NET 4.0型System.Numerics.BigInteger
足夠我猜博覽會兼容,但我並沒有馬上找到一個替代品。
有一個?我們應該只使用我們自己的Pow功能嗎? (如何)將在NET4.0中被替換?
我使用F#BigInteger類的戰俘功能時,我的編譯器告訴我:F#中的BigInteger中有Pow的替代嗎?
這種結構已被棄用。該成員已被刪除,以確保這一 類型是二進制與.NET 4.0型System.Numerics.BigInteger
足夠我猜博覽會兼容,但我並沒有馬上找到一個替代品。
有一個?我們應該只使用我們自己的Pow功能嗎? (如何)將在NET4.0中被替換?
可以使用POWN功能
let result = pown 42I 42
POWN適用於任何類型的 '理解' 乘法和 '一'。
如果您是基於OCaml的角度看F#,那麼OCaml Num module有power_num。由於OCaml類型num是任意精度的有理數,所以它們可以處理任何大小的數字,例如,它們不受CPU寄存器的限制,因爲它們可以象徵性地進行數學運算。還因爲NUM被定義爲
類型NUM =
|的INT
國際| Big_int.big_int
的Big_int | Ratio.ratio
他們可以處理非常小的數字,因爲比類型與出的精度損失的比例。
因爲F#沒有num類型,所以Jack創建了FSharp.Compatibility.OCaml模塊,它有num.fs並且可以通過NuGet使用。
所以,你可以得到所有你想要使用此精度,且num功能可以處理負指數。
它仍然無法在pow(bigint,bigint)情況下或pow(sometype,bigint)在我看到的一般情況下,但考慮到電力的影響不會是一個大問題,我認爲 – Peter
+1完全使用這些數字;) – RCIX