本文目錄一覽:
- 1、php怎麼生成6位隨機數,php隨機數例子
- 2、php程序如何產生隨機數?
- 3、php生成隨機數字,範圍1-100,每次生成一個數字,可以重複
- 4、php怎樣生成一個32位的隨機字元串?
- 5、php取隨機數概率演算法
- 6、php隨機數生成的函數是?
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程序如何產生隨機數?
mt_rand — 生成更好的隨機數
它可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。
所以建議樓主用這個函數 比rand要快
int mt_rand ([ int $min ], int $max ) $min為做小值 $max為最大值
?php
echo “table”;
for ($i=0;$i2;$i++) // 外層循環控制行數
{
echo “tr”;
for ($j=0;$j10;$j++) // 內層循環控制列數
{
echo “td”.mt_rand(10,100000).”/td”; // 產生隨機數
}
echo “/tr”;
}
echo “/table”
?
php生成隨機數字,範圍1-100,每次生成一個數字,可以重複
echo mt_rand(1,100);
請使用rand函數
int rand ( int $min , int $max )
使用循環生成,假如想生成512個數字,就可以像這樣:
$num = 1;//初始化一個變數為1
for($i = 1; $i = 512; $i++)//這個是看你要生成多少個數字,然後循環生成
{
if($num = 100)
$num = 1;//若變數的數字大於一百,則返回變成1
echo $num.”/br”;//輸出變數數字,即生成的數字,後面的/br是換行
$num++;//然後將變數加1,即在前面生成的數字基礎上加一
}
擴展資料:
密碼學安全偽隨機性。其定義為,給定隨機樣本的一部分和隨機演算法,不能有效的演算出隨機樣本的剩餘部分。
真隨機性。其定義為隨機樣本不可重現。實際上只要給定邊界條件,真隨機數並不存在,可是如果產生一個真隨機數樣本的邊界條件十分複雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真隨機數。
參考資料來源:百度百科-隨機數
php怎樣生成一個32位的隨機字元串?
如用戶註冊生成隨機密碼,用戶重置密碼也需要生成一個隨機的密碼。隨機密碼也就是一串固定長度的字元串。下面介紹生成隨機字元串的三種基本方法:
方法一
1、在33 – 126中生成一個隨機整數,如35。
2、將35轉換成對應的ASCII碼字元,如35對應#。
3、重複以上1、2步驟n次,連接成n位的密碼。
該演算法主要用到了兩個函數,mt_rand ( int $min , int $max )函數用於生成隨機整數,其中 $min – $max 為 ASCII 碼的範圍,這裡取 33 -126 ,可以根據需要調整範圍,如ASCII碼錶中 97 – 122 位對應 a – z 的英文字母,具體可參考 ASCII碼錶; chr ( int $ascii )函數用於將對應整數 $ascii 轉換成對應的字元。
function create_password($pw_length =
{
$randpwd = 」;
for ($i = 0; $i $pw_length; $i++)
{
$randpwd .= chr(mt_rand(33, 126));
}
return $randpwd;
}
// 調用該函數,傳遞長度參數$pw_length = 6
echo create_password(6);
方法二
1、預置一個的字元串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字元。
2、在 $chars 字元串中隨機取一個字元。
3、重複第二步n次,可得長度為n的密碼。
function generate_password( $length = 8 ) {
// 密碼字符集,可任意添加你需要的字元
$chars = 『abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^*()-_ []{}~`+=,.;:/?|’;
$password = 」;
for ( $i = 0; $i $length; $i++ )
{
// 這裡提供兩種字元獲取方式
// 第一種是使用 substr 截取$chars中的任意一位字元;
// 第二種是取字元數組 $chars 的任意元素
// $password .= substr($chars, mt_rand(0, strlen($chars) – 1), 1);
$password .= $chars[ mt_rand(0, strlen($chars) – 1) ];
}
return $password;
}
方法三
1、預置一個的字元數組 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字元。
2、通過array_rand()從數組$chars中隨機選出$length個元素。
3、根據已獲取的鍵名數組 $keys,從數組$chars取出字元拼接字元串。該方法的缺點是相同的字元不會重複取。
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 = ($chars, $length);
$password = 」;
for($i = 0; $i $length; $i++)
{
// 將 $length 個數組元素連接成字元串
$password .= $chars[$keys[$i]];
}
return $password;
}
php取隨機數概率演算法
//首先定義概率數組
$Probability[“1-10”] = 0.6;
$Probability[“11-50”] = 0.25;
$Probability[“51-100”] = 0.10;
$Probability[“101-200”] = 0.05;
//擴大1000倍便於計算
foreach($Probability as $k = $v){
$Probability[$k] = $v*1000;
}
$Num = 0;
$Random = rand(1,1000);//生成隨機數
foreach($Probability as $k = $v){
if( $Num $Random $Random = $v+$Num){
//進入這裡表示隨機數在哪一個範圍內
$Range = explode(“-“, $k);
//生成範圍區間的隨機數
$Result = rand($Range[0],$Range[1]);
echo $Result;
break;
}else{
$Num += $v;
}
}
php隨機數生成的函數是?
php提供的隨機數函數rand(),rand()函數將返回隨機整數,具體使用方法如下:rand(min,max)
可選參數min和max可以使rand() 返回0到rand_max之間的偽隨機整數,例如,想要5到15(包括 5 和 15)之間的隨機數,用 rand(5, 15)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/307325.html