我正在使用GMP庫來製作一個Pi程序,它將計算大約7萬億個Pi的數字。問題是,我無法弄清楚需要多少位來保存這些小數位。使用GMP進行任意精度算術
0
A
回答
1
7萬億位數字可以代表10 ^(7萬億)個不同數字中的任何一個。
x位可以代表2^x個不同的數字。
所以,你要解決:
2^x = 10^7000000000000
取對數基2雙方:
x = log2(10^7000000000000)
回想log(a^b)
= b * log(a)
:
x = 7000000000000 * log2(10)
我得到23253496664212
位。爲了安全,我會添加一兩個。雖然,祝好運找到petabytes舉行他們。
我懷疑你會需要一個更有趣的算法。
+0
其中每一個23TB,實際上...但是,我只需要知道我需要多少位,我找不到答案,但是你來了,不僅給了答案,而且給出了一個解釋!布拉沃先生,BRAVO! –
0
2^10 = 1024,因此十位將表示略多於三位數。由於您談論的是7萬億位數,那麼這將是23萬億位或大約3萬億位,這比我上次訪問的Costco的一個驅動器上的數量要多得多。
您可能會過度活躍。我想知道每個操作的讀/寫整個磁盤的I/O時間。
(解決這個問題的數學方法是使用對數,因爲一個需要7萬億位數字的數字代表的基數爲10,大約有7萬億。在現有基數中查找數字的日誌,將基數,並且你已經得到了你的答案,爲了簡化基數2和基數10之間的關係,使用十位==三位數字,因爲這並沒有太大的錯誤,它說2的日誌基數爲.3,實際上更多。就像0.301)
1
我想只是正確的一件事是什麼寫在響應答案:
回想日誌(一^ b)= A *日誌(二)
以及它是相反的:
log(a^b) = b * log(a)
相關問題
- 1. 並行任意精度算術庫
- 2. 我應該在OSX上使用哪個庫進行任意精度算術?
- 3. 你可以使用任意精度算術嗎?
- 4. 具有任意基礎的基本任意精度算術的最佳性能
- 5. C#中是否支持任意精度算術?
- 6. 16位處理器的任意精度算術(Bignum)
- 7. 需要C中的任意精度算術#
- 8. 在gmp任意精度上生成一個正態分佈
- 9. 提取任意度的算術根
- 10. 在Matlab中使用雙精度的算術精度
- 11. 如何在gmp-library中使用精度?
- 12. 任意精度包
- 13. 對於任意精度,GMP是否有一個通用的替代方案?
- 14. 使用GMP精確丟失
- 15. Python原生任意精度
- 16. JVM任意精度庫
- 17. LLVM任意精度整數
- 18. 任意精度gamma函數
- 19. 高精度算術和PARI/GP
- 20. Python浮點任意精度可用?
- 21. 使用asm.js進行高精度計算是否實用?
- 22. GMP-除法精度或打印問題
- 23. GMP使用什麼算法進行素數場反演(mpz_invert)?
- 24. 使用bash的$(())算子進行算術時發生意外的變量更新
- 25. 算術與PHP任意大的整型
- 26. 如何在Java中使用二進制進行算術運算?
- 27. GMP關節手術
- 28. 用於計算trig函數爲任意精度的算法和數據結構
- 29. 存儲和計算與實數到任意精度
- 30. 的JavaScript包整數和計算任意精度浮點:
也許看看[此算法(http://www.math.hmc.edu/funfacts/ffiles/20010.5.shtml),如果你不需要所有的數字。 –
你不知道很多數學,也許從簡單的事情開始。使用通用庫來計算數以萬億計的Pi數字將花費大量時間。 – Tobu