php生成數字
① php生成三個數字並且任意兩個不重復
<?php
$arr=array(1,2,3,4,5,6,7,8);
$str="";
for($i=0;$i<3;$i++){
$index=rand(0,count($arr)-1);
while(!isset($arr[$index])){
$index=rand(0,count($arr)-1);
}
$str.=$arr[$index];
unset($arr[$index]);
}
echo$str;
?>
//如果不是這個意思再補充提問,我繼續幫你弄
② PHP怎麼生成4位隨機純數字重復幾率要萬分之一以上!怎麼弄啊,急!
如果要生成四位數字的驗證碼,則可以用函數:$srand=rand(1000,9999);會生成在1000到9999之間的隨機數字,如果要生成位數的數字,可以更改最孝最大值。
③ PHP隨機生成數字+調用,謝謝
<?php
class Stack
{
private $datas = array();
public function Stack($size)
{
for($i=0;$i<$size;$i++)
{
$this->Push();
}
}
/**
* 出棧
*
* @return unknown
*/
public function Pop()
{
$this->Push();
return array_pop($this->datas);
}
/**
* 入棧
*
*/
private function Push()
{
while(true)
{
$data = rand(10,100);
if(in_array($data,$this->datas))
{
continue;
}
array_push($this->datas,$data);
break;
}
}
}
$datas = new Stack(5); $num = $datas->Pop();
?>
④ php 如何隨機生成指定數字和概率
親,你可以這樣做呦!~~
如果只有這三個數,是不好弄出 0:85% 1:5% 2:10%的
但是你如果想提高某個數字出現的概率,你可以適當讓這個數組增多。
你可以這樣寫:
<?php
//定義一個數組,裡面有85個0
$num0=array_fill(0,85,0);
//定義一個數組,裡面有5個1
$num1=array_fill(1,5,1);
//定義一個數組,裡面有10個2
$num2=array_fill(2,10,2);
//總數組,裡面總共100個元素
$allNum=array_merge($num0,$num1,$num2);
//隨機取一個元素
$randKey=array_rand($allNum);
$randnum=$allNum[$randKey];
//以上就可以實現出現0的概率是85%出現1的概率是5%出現2的概率是10%了,因為一共一百個數,裡面有85個是0,5個是1,10個是2
希望可以幫到你呦!~如果有不正確的地方,歡迎指正!~~
本人博客:https://www.boboidea.com ,歡迎交流學習!~~
⑤ php生成隨機數字,范圍1-100,每次生成一個數字,可以重復
echomt_rand(1,100);
請使用rand函數
intrand(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,即在前面生成的數字基礎上加一
}
(5)php生成數字擴展閱讀:
密碼學安全偽隨機性。其定義為,給定隨機樣本的一部分和隨機演算法,不能有效的演算出隨機樣本的剩餘部分。
真隨機性。其定義為隨機樣本不可重現。實際上只要給定邊界條件,真隨機數並不存在,可是如果產生一個真隨機數樣本的邊界條件十分復雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真隨機數。
⑥ php:如何生成隨機的唯一字母數字字元串
1. 自己寫代碼產生隨機的數字和字母組合,每產生1個去資料庫查詢該隨機碼是否已存在,如果已存在,則重新產生,直到不重復為止。
缺點:產生速度慢,還要查詢資料庫,當數據量大的時候,可能重復的機率會比較高,要查詢多次資料庫.
2. guid,該方法應該是用的比較多的。
優點:使用簡單方便,不用自己編寫額外的代碼
缺點:佔用資料庫空間相對較大,特別是根據guid查詢速度比較慢(畢竟是字元串)。
3. 主鍵+隨機碼的方式,我們產生的隨機碼保存到資料庫肯定會有個主鍵,用該主鍵+隨機字元來組合。產生步驟:
1) 先從id生成器中獲取id,比如是155.
2)填充成固定位數(比如8位)的字元串(不夠位數的左邊填0,超過位數直接使用該數字),得到:00000155
3)在每個數字後面隨機插入1個字母或其它非數字元號,得到:0A0F0R0Y0H1K5L5M
這樣就可以得到1個隨機的唯一的邀請碼了。
優點:使用也比較簡單,不用查詢資料庫。最大的優點是查詢的時候,可以根據邀請碼直接得到主鍵id,然後根據id去資料庫查詢(速度很快),再比較查詢出來的邀請碼和用戶提交的邀請碼是否一致。
缺點:需要使用id產生器,如果主鍵是資料庫自增長的就不太好用(需要先插入資料庫獲取id,再更新邀請碼)。
4. 有時候產品經理說,我要求邀請碼都是數字的。把方法3變通下就可以實現唯一的純數字隨機碼了。
1) 獲取id: 155
2) 轉換成8進制:233
3) 轉為字元串,並在後面加'9'字元:2339
4)在後面隨機產生若干個隨機數字字元:2003967524987
轉為8進制後就不會出現9這個字元,然後在後面加個'9',這樣就能確定唯一性。最後在後面產生一些隨機數字就可以。
⑦ PHP時間內隨機生成數字
如果實際情況和你給出的例子這么簡單,那就沒有必要隨機生成,使用 shuffle 打亂 array 其實就等於隨機了。
$arr = array(1,2,3,4,5);
print_r($arr); // 輸出 1,2,3,4,5
shuffle($arr); // 打亂順序
print_r($arr); // 輸出打亂順序的數字
或者,使用rand隨機生成。先復制一個相同的array,每生成一個隨機數,就把它從array中刪除,然後在剩餘的數字中再生成隨機。
$arr = array(1,2,3,4,5);
$arr_tmp = $arr;
for($i = 0; $i < count($arr_tmp) + $i; $i++) {
$rand = rand(0, count($arr_tmp) - 1);
echo "<p>第".($i + 1)."個隨機數:".$arr_tmp[$rand]."</p>";
unset($arr_tmp[$rand]);
$arr_tmp = array_values($arr_tmp);
}
⑧ php中如何生成1-15之間的隨機數
可以使用PHP math 函數 rand(1,15)直接返回即可。
定義和用法:rand() 函數返回隨機整數。
語法:rand(min,max)。
參數:min,max可選。規定隨機數產生的范圍。
說明:如果沒有提供可選參數 min 和 max,rand() 返回 0 到 RAND_MAX 之間的偽隨機整數。例如,想要 5 到 15(包括 5 和 15)之間的隨機數,用 rand(5, 15)。
(8)php生成數字擴展閱讀:
提示和注釋
注釋:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范圍大於 32768,那麼指定 min 和 max 參數就可以生成大於 RAND_MAX 的數了,或者考慮用 mt_rand() 來替代它。
注釋:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數給隨機數發生器播種,現在已自動完成。
注釋:在 3.0.7 之前的版本中,max 的含義是 range 。要在這些版本中得到和上例相同 5 到 15 的隨機數,簡短的例子是 rand (5, 11)。
⑨ php怎麼生成6位隨機數
通常情況下,當我們要生成一個隨機字元串時,總是先創建一個字元池,然後用一個循環和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這樣的字元串,隨機!