Bug #12455 Updated: Srand and shuffle give odd results
| From: | sulka at sulake dot com | Date: | Sun, 29 Jul 2001 20:41:55 +0000 |
| Subject: | Bug #12455 Updated: Srand and shuffle give odd results | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-61398@lists.php.net to get a copy of this message | ||
ID: 12455
User updated by: sulka@sulake.com
Reported By: sulka@sulake.com
Status: Open
Bug Type: *Math Functions
Operating System: SunOS 5.8 (Solaris)
PHP Version: 4.0.4pl1
New Comment:
Well, when I run that code I get 4, not 500. Upping the
number of iterations doesn't help. I think the problem is
with the particular build (extension/OS combination). Any
way to debug this?
Previous Comments:
------------------------------------------------------------------------
[2001-07-29 14:26:39] rasmus@php.net
I don't think I understand what the problem is here. I tested your code with the following:
<?
function pwd() {
$password = "";
$array =
array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',0,1,2,4,5,6,7,8,9);
srand ((double)microtime()*1000000);
shuffle(&$array);
for ($i=0; $i<6; $i++) { $password .= $array[$i]; }
return $password;
}
$i=0;
while($i<500) {
$password = pwd();
$a[$password] = $password;
$i++;
}
echo count($a);
?>
This always returns 500 which means that 500 unique passwords were always created.
------------------------------------------------------------------------
[2001-07-29 05:51:30] sulka@sulake.com
I'm using the following code to create random strings
(passwords):
$password = "";
$array =
array('a','b','c','d','e','f','g','h','i','j','k','l','m','
n','o','p','q','r','s','t','u','v','w','x','y','z',0,1,2,4,
5,6,7,8,9);
srand ((double)microtime()*1000000);
shuffle(&$array);
for ($i=0; $i<6; $i++) { $password .= $array[$i]; }
Now, for some reason this seems to return only five
different values ever on the Solaris machine I'm running
the code on. And I'm not checking on the same run of the
script, this is based on accessing page with the script
through http and looking at the results for about 150
reloads on two different days.
This is the first time I'm sending a PHP report so I don't
know exactly what information to provide. Please ask for
more if as you see fit.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12455&edit=1