[php] liczby losowe od 1 do 2^32

0

mam funkcje

PHP:

<?php

for ($i=1;$i<2000;$i++)
{
        echo mt_rand(1,pow(2,31)) . "<br />";
}

?>

ktora generuje mi liczby losowe z zakresu od 1 do 2^31 i działa to OK.
Natomiast jezeli wpiszę 2^32 to juz jest problem bo funkcja zwraca tylko jedynki

PHP:

<?php

for ($i=1;$i<2000;$i++)
{
        echo mt_rand(1,pow(2,32)) . "<br />";
}

?>

domyslam sie ze jest to kwestia zakresu int-ów i ze powinienem jakos zrobic unsigned zeby zwolnić jeszcze jeden bajt na kolejną potęge dwójki ale nie mam pojecia jak to zrobić.

Jezeli to ja cos mieszam z tymi zakresami, a powinno sie inczej tam uzyskac liczby od 1 do 2^32 dajcie znac prosze

ps.
a jak myslicie to jest rozwiazanie:
http://pl2.php.net/manual/en/function.bcpow.php

?? nie bardzo mi wychodza testy na tym.. i nie wiem czy sie do czegos przyda

0

mozna sprobowac tak:

 $min = 1;
 $max = pow(2,32);
 $rm = mt_getrandmax();
for ($i=1;$i<2000;$i++)
{
  echo mt_rand() / $rm  * ($max - $min) + $min;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0