ID:               35662
 Updated by:       [EMAIL PROTECTED]
 Reported By:      jullrich at sans dot org
-Status:           Open
+Status:           Bogus
 Bug Type:         *Math Functions
 Operating System: Linux 2.6 (RedHat)
 PHP Version:      4.4.1
 New Comment:

The rand functions takes to integers as arguments
when the second argument 9999999999 is cast to an integer it results in
1410065407. This is why you only get values starting with 10, 11, 12, 13
and 14


Previous Comments:
------------------------------------------------------------------------

[2005-12-13 22:29:29] jullrich at sans dot org

'rand' works fine up to 9 digits. I just did more tests and the bug
only shows up for >= 10 digits.

------------------------------------------------------------------------

[2005-12-13 22:20:09] jullrich at sans dot org

Getting the same problem with the php 5.1-latest.

Code used to test:
<?=

#    1234567890 1234567890
rand(1000000000,9999999999);

?>

Wrapper to generate 100 numbers:

for b in `seq 1 100`; do php -e x.php >> numbers; done

Quick summary of first two digits:
10... 21 times
11... 21 times
12... 13 times
13... 24 times
14...  3 times

so still the same problem. Only numbers from 10... to 14... are
generated.

------------------------------------------------------------------------

[2005-12-13 20:58:11] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.1-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.1-win32-latest.zip



------------------------------------------------------------------------

[2005-12-13 20:53:53] jullrich at sans dot org

Description:
------------
The 'rand' function is far from random. For example, the
following code:

<?= rand(10000000000,99999999999); ?>

only generates values that start with '12','13' or '14'.
Out of 1500 times the function is called, only approx. 1000 different
values are generated.






Reproduce code:
---------------
<?= rand(10000000000,99999999999); ?>

Expected result:
----------------
somewhat random numbers between 10000000000 and 99999999999.


Actual result:
--------------
all numbers are in the range from 120000000000 to 150000000000 and
frequently repeat (about 25% of the numbers
are repeats).

Sample:

1379409636
1275750426
1248288483
1398136354
1404047798
1292410973
1405794269
1278267510
1225653649
 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=35662&edit=1

Reply via email to