本文目录一览:
php怎么生成6位随机数,php随机数例子
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。
复制代码 代码如下:
function randomkeys($length)
{
$pattern = '1234567890abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./l
t;?;#:@~[]{}-_=+)(*^%___FCKpd___0pound;"!'; //字符池
for($i=0;$i$length;$i++)
{
$key .= $pattern{mt_rand(0,35)}; //生成php随机数
}
return $key;
}
echo randomkeys(8);
这个php随机函数能生成XC*=z~7L这样的字符串,够随机!现在介绍另一种用PHP生成随机数的方法:利用chr()函数,省去创建字符池的步骤。
复制代码 代码如下:
function randomkeys($length)
{
$output='';
for ($a = 0; $a $length; $a++) {
$output .= chr(mt_rand(33, 126)); //生成php随机数
}
return $output;
}
echo randomkeys(8);
在第二个php随机函数里,先用mt_rand()生成一个介于33到126之间的php随机数,然后用chr()函数转化成字符。查看ascii码表就会发现,33到126代表的正是第一个函数中字符池里的所有字符。第二个函数和第一个函数功能相同,而且更简洁。
php取随机数概率算法
问题有点模糊,我先暂时把“保留两位小数”理解成“[输出的随机数]保留两位小数”,而非其他因素保留多少小数。
又把“1-10”,理解成包括1和10在内其两数之间的小数,
把10-50,理解成10.01到50.00之间的数,不包括10.00。以此类推。
?php
function genRandom(){
$p=rand(1,100);
if($p=60) $r=rand(100,1000);
elseif($p60 and $p=85) $r=rand(1001,5000);
elseif($p85 and $p=95) $r=rand(5001,10000);
else $r=rand(10001, 20000);
return $r/100;
}
$a=array();
$total=50000;
for($i=0;$i$total;$i++){
$c=genRandom();
if($c=1 and $c=10) $p=0;
elseif($c10 and $c=50) $p=1;
elseif($c50 and $c=100) $p=2;
elseif($c100 and $c=200) $p=3;
else $p=4;
if(!array_key_exists($p, $a)) $a[$p]=1;
else $a[$p]++;
}
if(!array_key_exists(4, $a)) $a[4]=0;
echo "总样本数".$total.'br/';
echo "1-10样本数".$a[0].', 占'.($a[0]/$total*100).'%br/';
echo "10-50样本数".$a[1].', 占'.($a[1]/$total*100).'%br/';
echo "50-100样本数".$a[2].', 占'.($a[2]/$total*100).'%br/';
echo "100-200样本数".$a[3].', 占'.($a[3]/$total*100).'%br/';
echo "其他样本数".$a[4].', 占'.($a[4]/$total*100).'%br/';
总样本数50000
1-10样本数30052, 占60.104%
10-50样本数12404, 占24.808%
50-100样本数4993, 占9.986%
100-200样本数2551, 占5.102%
其他样本数0, 占0%
php随机数生成的函数是?
php提供的随机数函数rand(),rand()函数将返回随机整数,具体使用方法如下:rand(min,max)
可选参数min和max可以使rand() 返回0到rand_max之间的伪随机整数,例如,想要5到15(包括 5 和 15)之间的随机数,用 rand(5, 15)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。