Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] generorwanie liczb losowych od 1 do 2^32
Forum PHP.pl > Forum > Przedszkole
hhg
mam funkcje

  1. <?php
  2.  
  3. for ($i=1;$i<2000;$i++)
  4. {
  5. echo mt_rand(1,pow(2,31)) . "<br />";
  6. }
  7.  
  8. ?>


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

  1. <?php
  2.  
  3. for ($i=1;$i<2000;$i++)
  4. {
  5. echo mt_rand(1,pow(2,32)) . "<br />";
  6. }
  7.  
  8. ?>



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
lopez86
Nigdy nie potrzebowałem tak dużych liczb , znalazłem coś o tym może coś zdziałasz

http://www.mysqlperformanceblog.com/2007/0...nd-portability/

Co nieco tam pisze dokładnie nie czytałem .
hhg
a jak myslicie to jest rozwiazanie:
http://pl2.php.net/manual/en/function.bcpow.php

questionmark.gif nie bardzo mi wychodza testy na tym.. i nie wiem czy sie do czegos przyda
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.