需要存儲非常大的整數,所以我使用boost :: multiprecision :: cpp_int。問題是,當使用這種新類型時,我無法弄清楚如何使用它從pow()和rand()等其他函數獲取我想要的值。對pow()和rand()函數使用boost cpp_int
我需要存儲一個非常大的數,這是通過指數計算得出的。但pow()函數本身不能處理如此大的數字,rand()返回基本整數。
更具體地說,我只需要存儲值2^1024並生成一個介於1和2^1024之間的隨機數。但我一直在努力實現這個目標。
cpp_int x = pow(2,1024);
x = rand() % x + 1;
像這樣的東西不起作用的原因我上面說過。我也嘗試了boost :: multiprecision :: pow,但是這似乎不適用於cpp_int。我需要跳過哪些環節才能讓這些相對簡單的操作使用大整數?
參見[用於產生隨機數的文檔(http://www.boost.org/doc/libs/1_63_0/libs/multiprecision/doc/html/boost_multiprecision/tut/random.html )和[整數運算的文檔](http://www.boost.org/doc/libs/1_63_0/libs/multipreci氮氧化硅/ DOC/HTML/boost_multiprecision /嘖嘖/ gen_int.html)。 – Mankarse
我之前確實看到過這些,但我注意到他們使用了「Integer」類型,而不是cpp_int。 boost.integer也可用於像cpp_int這樣的龐大數字嗎? – Bob
'整數'是函數模板的模板類型參數。 'cpp_int'符合'Integer'的類型要求,所以函數模板可以和'cpp_int'類型的值一起使用。 – Mankarse