Я хочу получить натуральное число (положительное целое число от 0 до x), используя lcg_value () . Это то, что я вижу из фактического исходного кода функции:
/*
* combinedLCG() returns a pseudo random number in the range of (0, 1).
* The function combines two CGs with periods of
* 2^31 - 85 and 2^31 - 249. The period of this function
* is equal to the product of both primes.
*/
Теперь, как бы мне превратить это число в натуральное число, чтобы я не терял информацию / энтропию. В настоящее время я просто делаю это так:
$number = pow(2,31) * lcg_value();
Однако у меня ощущение, что оно не идеальное. Как насчет 2 ^ 62? Или, возможно, 2 ^ 31-334? Или 2 ^ 62-334? Я не знаю.