note 47727 added to ref.bc
| From: | JoseAndresRuiz at osu1 dot php dot net | Date: | Fri, 26 Nov 2004 16:47:01 +0000 |
| Subject: | note 47727 added to ref.bc | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-81069@lists.php.net to get a copy of this message | ||
LARGE RANDOM NUMBER GENERATOR
<?
// GENERA UN Nº ALEATORIO DE CUALQUIER TAMAÑO
// N = Valor mínimo (Debe ser una cadena)
// M = Valor máximo (Debe ser una cadena)
//
// Si strlen(M - N) > strlen(mt_getrandmax())-1 el
// valor máximo generado será algo inferior a M
// Este error es insignificante para la mayoría de los usos
function rand_big($n,$m)
{
$m=bcsub($m,$n);
$m=bcadd($m,"1");
$c=strlen($m);
$mx=strlen(mt_getrandmax())-1;
$s=$c%$mx;
$v=floor($c/$mx);
if($s==0){$s=$mx;$v--;}
$mx=pow(10,$mx)-1;
for($i=0;$i<$v;$i++)
{
$a=$a.mt_rand(0,$mx);
}
if(strlen($a)+$s==$c)
{
$b=substr($m,0,$s);
}
else
{
$b=pow(10,$s);
}
$a=mt_rand(0,$b-1).$a;
return(bcadd($a,$n));
}
?>
----
Manual Page -- http://www.php.net/manual/en/ref.bc.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+47727
Delete -- http://master.php.net/manage/user-notes.php?action=delete+47727&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+47727&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+47727&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+47727&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+47727&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+47727&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+47727&report=yes
Search -- http://master.php.net/manage/user-notes.php