/ Dev / urandom Okuma ve rasgele bir tamsayı üreten

0 Cevap php

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?

0 Cevap