0
我在php中使用bcmod和gmp_mod函數來處理大量數據。PHP bcmod或gmp_mod輸入類型問題
這工作得很好:
// large number must be string
$n = "10000000000000000000001";
$y = 1025;
$c = 1025;
// Both works the same (also tested in python)
$y = gmp_mod((bcpowmod($y, 2, $n) + $c) , $n);
$y = bcmod ((bcpowmod($y, 2, $n) + $c) , $n);
但輸入$n
也不是一成不變的。所以我必須用型鑄造喜歡:
$n = (string)10000000000000000000001;
這不起作用了。
爲GMP給出了這樣的錯誤:
gmp_mod(): Unable to convert variable to GMP - string is not an integer
而關於BC,使我這個錯誤:
bcmod(): Division by zero
的問題是,(string)
不將其轉換爲字符串罰款。任何想法?
編輯:我找到了解決辦法here,但仍是輸入字符串:
$bigint = gmp_init("9999999999999999999");
$bigint_string = gmp_strval($bigint);
var_dump($bigint_string);
我知道原因,只是尋找一個解決方案。 –
從來沒有定義$ n的類型,它將始終是一個字符串...如果從...輸入...你不能輸入類型 –
查看解決方案 –