很多站长朋友们都不太清楚php的random,今天小编就来给大家整理php的random,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 random()和rand()有什么区别? 语言是PHP的 2、 php怎么生成6位随机数? 3、 php取随机数概率算法 random()和rand()有什么区别? 语言是PHP的random是js中的取随机数,是Math中的一个方法,用的时候是Math.random(),返回的是0-1之间的一个数(包括0,不包括1),
rand是php里的一个取随机数的方法,返回的是你规定的最大数和最小数之间的值(包括最大值和最小值)。
php怎么生成6位随机数?通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和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($p>60 and $p<=85) $r=rand(1001,5000);
elseif($p>85 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($c>10 and $c<=50) $p=1;
elseif($c>50 and $c<=100) $p=2;
elseif($c>100 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的random的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。