#35662 [Opn]: The 'rand()' function returns only few different values

From: Date: Tue, 13 Dec 2005 21:29:30 +0000
Subject: #35662 [Opn]: The 'rand()' function returns only few different values
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-90394@lists.php.net to get a copy of this message
ID: 35662 User updated by: jullrich at sans dot org Reported By: jullrich at sans dot org Status: Open Bug Type: *Math Functions Operating System: Linux 2.6 (RedHat) PHP Version: 4.4.1 New Comment: 'rand' works fine up to 9 digits. I just did more tests and the bug only shows up for >= 10 digits. Previous Comments: ------------------------------------------------------------------------ [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] sniper@php.net 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

« previous php.bugs (#90394) next »