php提供的隨機(jī)數(shù)函數(shù)rand(),rand()函數(shù)將返回隨機(jī)整數(shù),具體使用方法如下:rand(min,max)
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了磁縣免費(fèi)建站歡迎大家使用!
可選參數(shù)min和max可以使rand() 返回0到rand_max之間的偽隨機(jī)整數(shù),例如,想要5到15(包括 5 和 15)之間的隨機(jī)數(shù),用 rand(5, 15)
php生成隨機(jī)數(shù)的幾種方法,總結(jié)如下:
第一種方法,非常簡(jiǎn)單,直接使用系統(tǒng)自帶的函數(shù):
查看代碼1
srand((double)microtime()*1000000);
2
//隨機(jī)產(chǎn)生0-99之間的整數(shù)
3
$randval=rand(0,99999999);
4
echo
$randval,'
';
5
6
第二種方法,稍微復(fù)雜一點(diǎn),不只是生成只有數(shù)字的隨機(jī)字符串,更包括了各種特殊字符:
查看代碼
function
randomkeys($length){
$output='';
for($a=0;$a$length;
$a++){
$output.=chr(mt_rand(33,
126));
}
return
$output;
}
echo
randomkeys(20);
mt_rand — 生成更好的隨機(jī)數(shù)
它可以產(chǎn)生隨機(jī)數(shù)值的平均速度比 libc 提供的 rand() 快四倍。
所以建議樓主用這個(gè)函數(shù) 比rand要快
int mt_rand ([ int $min ], int $max ) $min為做小值 $max為最大值
?php
echo "table";
for ($i=0;$i2;$i++) // 外層循環(huán)控制行數(shù)
{
echo "tr";
for ($j=0;$j10;$j++) // 內(nèi)層循環(huán)控制列數(shù)
{
echo "td".mt_rand(10,100000)."/td"; // 產(chǎn)生隨機(jī)數(shù)
}
echo "/tr";
}
echo "/table"
?
通常情況下,當(dāng)我們要生成一個(gè)隨機(jī)字符串時(shí),總是先創(chuàng)建一個(gè)字符池,然后用一個(gè)循環(huán)和mt_rand()或rand()生成php隨機(jī)數(shù),從字符池中隨機(jī)選取字符,最后拼湊出需要的長(zhǎng)度。
復(fù)制代碼 代碼如下:
function randomkeys($length)
{
$pattern = '1234567890abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./l
t;?;#:@~[]{}-_=+)(*^%___FCKpd___0pound;"!'; //字符池
for($i=0;$i$length;$i++)
{
$key .= $pattern{mt_rand(0,35)}; //生成php隨機(jī)數(shù)
}
return $key;
}
echo randomkeys(8);
這個(gè)php隨機(jī)函數(shù)能生成XC*=z~7L這樣的字符串,夠隨機(jī)!現(xiàn)在介紹另一種用PHP生成隨機(jī)數(shù)的方法:利用chr()函數(shù),省去創(chuàng)建字符池的步驟。
復(fù)制代碼 代碼如下:
function randomkeys($length)
{
$output='';
for ($a = 0; $a $length; $a++) {
$output .= chr(mt_rand(33, 126)); //生成php隨機(jī)數(shù)
}
return $output;
}
echo randomkeys(8);
在第二個(gè)php隨機(jī)函數(shù)里,先用mt_rand()生成一個(gè)介于33到126之間的php隨機(jī)數(shù),然后用chr()函數(shù)轉(zhuǎn)化成字符。查看ascii碼表就會(huì)發(fā)現(xiàn),33到126代表的正是第一個(gè)函數(shù)中字符池里的所有字符。第二個(gè)函數(shù)和第一個(gè)函數(shù)功能相同,而且更簡(jiǎn)潔。
echo?mt_rand(1,100);
請(qǐng)使用rand函數(shù)
int?rand?(?int?$min?,?int?$max?)
使用循環(huán)生成,假如想生成512個(gè)數(shù)字,就可以像這樣:
$num = 1;//初始化一個(gè)變量為1
for($i = 1; $i = 512; $i++)//這個(gè)是看你要生成多少個(gè)數(shù)字,然后循環(huán)生成
{
if($num = 100)
$num = 1;//若變量的數(shù)字大于一百,則返回變成1
echo $num."/br";//輸出變量數(shù)字,即生成的數(shù)字,后面的/br是換行
$num++;//然后將變量加1,即在前面生成的數(shù)字基礎(chǔ)上加一
}
擴(kuò)展資料:
密碼學(xué)安全偽隨機(jī)性。其定義為,給定隨機(jī)樣本的一部分和隨機(jī)算法,不能有效的演算出隨機(jī)樣本的剩余部分。
真隨機(jī)性。其定義為隨機(jī)樣本不可重現(xiàn)。實(shí)際上只要給定邊界條件,真隨機(jī)數(shù)并不存在,可是如果產(chǎn)生一個(gè)真隨機(jī)數(shù)樣本的邊界條件十分復(fù)雜且難以捕捉(比如計(jì)算機(jī)當(dāng)?shù)氐谋镜纵椛洳▌?dòng)值),可以認(rèn)為用這個(gè)方法演算出來了真隨機(jī)數(shù)。
參考資料來源:百度百科-隨機(jī)數(shù)