note 47727 deleted from ref.bc by betz
| From: | betz@php.net | Date: | Fri, 26 Nov 2004 17:46:26 +0000 |
| Subject: | note 47727 deleted from ref.bc by betz | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-81071@lists.php.net to get a copy of this message | ||
Note Submitter: Jose Andres Ruiz
----
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));
}
?>
----
Reason: useless example