当前位置:首页 » 编程语言 » php随机数概率

php随机数概率

发布时间: 2024-12-04 19:08:49

A. php取随机数概率算法

问题有点模糊,我先暂时把“保留两位小数”理解成“[输出的随机数]保留两位小数”,而非其他因素保留多少小数。
又把“1-10”,理解成包括1和10在内其两数之间的小数,
把10-50,理解成10.01到50.00之间的数,不包括10.00。以此类推。

<?php
functiongenRandom(){
$p=rand(1,100);
if($p<=60)$r=rand(100,1000);
elseif($p>60and$p<=85)$r=rand(1001,5000);
elseif($p>85and$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>=1and$c<=10)$p=0;
elseif($c>10and$c<=50)$p=1;
elseif($c>50and$c<=100)$p=2;
elseif($c>100and$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%

B. 怎么用php中的random模块求随机数

在PHP中,生成随机数可以使用random_int()和rand()函数,具体方法如下:

首先,rand($min, $max)用于生成一个指定范围内的随机整数。

下面是一个示例:

然而,在PHP 7中,random_int()函数被引入,以生成更安全的随机数。对于较旧的PHP版本,rand()函数可用,但其随机性可能不够安全。

生成随机数时需指定随机数种子。若未指定,每次生成的随机数将相同。可调用srand()函数设置种子,或在rand()函数或random_int()函数的第三个参数中设置种子,以确保生成的随机数具有足够的随机性。例如:

在本例中,srand()使用了当前时间的微秒数作为种子,确保每次生成的随机数不同。

需要注意的是,生成的随机数仅是伪随机数,不能保证完全随机。在安全场景中,应使用更安全的随机数生成方法,如OpenSSL库中的随机数生成函数。

C. php怎么生成6位随机数,php随机数例子

通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。代码如下:
function randomkeys($length)
{
$pattern = '
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这样的字符串,随机!

D. php生成随机数,1-15之间,2出现的概率是80% 然后其它数字出现的概率是10%

$rand = 0; // 定义rank随机变量
if(mt_rand(1,100) <= 80) { // 控制2出现的概率为80%
$rand = 2;
} else { // 剩余数字的概率为20%
$rand = mt_rand(2,15); // 排除掉2号位置,用1去补2号位
if($rand == 2) { // 当随机到2号位,则用1去补2号
$rand = 1;
}
}
echo $rand; // 输出结果

http://w3school.com.cn/php/func_math_mt_srand.asp

E. php程序如何产生随机数

$i = rand(10,100000);随机产生10到100000之间的一个数字

<?php
echo "<table><tr>";
for($i=0;$i<20;$i++)
{
echo "<td>",rand(10,100000),"</td>";
if($i==9)
{
echo "</tr><tr>";
}
}
echo "</tr></table>";
?>

F. php生成不等于某数的随机数

例1,使用shuffle函数生成随机数。
1 <?php

2 $arr=range(1,10);

3 shuffle($arr);

4 foreach($arr as $values)

5 {

6 echo $values." ";

7 }

8 ?>

例2,使用array_unique函数生成随机数。

1 <?php

2 $arr=array();

3 while(count($arr)<10)

4 {

5 $arr[]=rand(1,10);

6 $arr=array_unique($arr);

7 }

8 echo implode(" ",$arr);

9 ?>

例3,使用array_flip函数生成随机数,可以去掉重复值。

01 <?php

02 $arr=array();

03 $count1=0;

04 $count = 0;

05 $return = array();

06 while ($count < 10)

07 {

08 $return[] = mt_rand(1, 10);

09 $return = array_flip(array_flip($return));

10 $count = count($return);

11 } //www.jbxue.com

12 foreach($return as $value)

13 {

14 echo $value." ";

15 }

16 echo "<br/>";

17 $arr=array_values($return);// 获得数组的值

18 foreach($arr as $key)

19 echo $key." ";

20 ?>

php随机数生成函数示例

01 <?php

02 function randpw($len=8,$format='ALL'){

03 $is_abc = $is_numer = 0;

04 $password = $tmp ='';

05 switch($format){

06 case 'ALL':

07 $chars='';

08 break;

09 case 'CHAR':

10 $chars='';

11 break;

12 case 'NUMBER':

13 $chars='0123456789';

14 break;

15 default :

16 $chars='';

17 break;

18 } // www.jbxue.com

19 mt_srand((double)microtime()*1000000*getmypid());

20 while(strlen($password)<$len){

21 $tmp =substr($chars,(mt_rand()%strlen($chars)),1);

22 if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){

23 $is_numer = 1;

24 }

25 if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){

26 $is_abc = 1;

27 }

28 $password.= $tmp;

29 }

30 if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){

31 $password = randpw($len,$format);

32 }

33 return $password;

34 }

35 for($i = 0 ; $i < 10; $i++){

36 echo randpw(8,'NUMBER');

37 echo "<br>";

38 }

G. PHP生成随机数的几种方法

PHP生成随机数的几种方法

第一种方法使用mt_rand()函数生成随机数,示例代码如下:

function GetRandStr($length){

$str='';

$len=strlen($str)-1;

$randstr='';

for($i=0;$i<$length;$i++){

$num=mt_rand(0,$len);

$randstr .= $str[$num];

}

return $randstr;

$number=GetRandStr(6);

echo $number;

第二种方法使用array_rand()和md5函数生成随机字符串,代码如下:

function make_password( $length = 8 ) { // 密码字符集,可任意添加你需要的字符 $chars = 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', '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', '3', '4', '5', '6', '7', '8', '9', '!', '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', '.', ';', ':', '/', '?', '|'); // 在 $chars 中随机取 $length 个数组元素键名 $keys = array_rand($chars, $length); $password = ''; for($i = 0; $i < $length; $i++) { // 将 $length 个数组元素连接成字符串 $password .= $chars[$keys[$i]]; } return $password; }

第三种方法取当前时间戳,代码示例为:

function get_password( $length = 8 ) { $str = substr(md5(time()), 0, $length);//md5加密,time()当前时间戳 return $str; }

第四种方法使用str_shuffle()函数打乱字符串,生成随机字符串,代码如下:

function getrandstr(){ $str=''; $randStr = str_shuffle($str);//打乱字符串 $rands= substr($randStr,0,6);//substr(string,start,length);返回字符串的一部分 return $rands; }

第五种方法生成四位随机验证码,代码如下:

$code = rand(10000, 99999);

比较mt_rand()生成0~1随机小数的效果与lcg_value()方法:

两种方法进行执行时间比较,lcg_value()执行时间大约快3倍。

两种方法进行随机效果比较,生成的图像效果对比。

热点内容
外网访问视频监控 发布:2024-12-05 04:56:48 浏览:340
安卓怎么彻底关闭qq语音 发布:2024-12-05 04:51:11 浏览:940
c语言解码程序 发布:2024-12-05 04:46:24 浏览:251
安卓手机怎么弄3d眼镜 发布:2024-12-05 04:41:23 浏览:564
路由与远程访问nat 发布:2024-12-05 04:23:09 浏览:952
七日杀怎么把存档换成服务器 发布:2024-12-05 04:22:27 浏览:692
php数组多维数组 发布:2024-12-05 04:21:33 浏览:307
快手怎么上传录音 发布:2024-12-05 04:16:54 浏览:394
安卓如何添加页面背景透明度 发布:2024-12-05 04:16:04 浏览:313
h5拖拽上传 发布:2024-12-05 04:02:16 浏览:212