Ben I / dev / urandom elde bayt dışında bir rasgele tamsayı üreten bir işlevi oluşturmak için çalışıyorum. PHP bu yapıyorum ve şu anda gibi görünüyor:
public static function getRandomInteger($min, $max)
{
// First we need to determine how many bytes we need to construct $min-$max range.
$difference = $max-$min;
$bytesNeeded = ceil($difference/256);
$randomBytes = self::getRandomBytes($bytesNeeded);
// Let's sum up all bytes.
$sum = 0;
for ($a = 0; $a < $bytesNeeded; $a++)
$sum += ord($randomBytes[$a]);
// Make sure we don't push the limits.
$sum = $sum % ($difference);
return $sum + $min;
}
Her şey tam olarak makul değerlerini hesaplamak değil düşünüyorum dışında harika çalışıyor. Eğer 0 ile 250 arasında rastgele bir değere sahip olmak istiyorsanız Örneğin, o 250 ile bir bayt ve mods aldığı böylece 0-6 değerleri 7-250 değerlerine daha görünür daha muhtemeldir. Ne Bunu düzeltmek için ne yapmalıyım?