當前位置:首頁 » 編程語言 » 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倍。

兩種方法進行隨機效果比較,生成的圖像效果對比。

熱點內容
路由與遠程訪問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
為什麼紅米手機配置那麼高還卡 發布:2024-12-05 04:02:07 瀏覽:34
中興伺服器管理地址 發布:2024-12-05 03:48:44 瀏覽:440
安卓和windows哪個早 發布:2024-12-05 03:40:03 瀏覽:414
復制廣聯達加密鎖 發布:2024-12-05 02:44:58 瀏覽:195