php產生隨機數
① 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)。
(1)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生成不重復隨機數、數組的4種方法分享
下面寫幾種生成不重復隨機數的方法,直接上代碼吧
復制代碼
代碼如下:
<?php
define('RANDOM_MAX',
100);
define('COUNT',
10);
echo
'max
random
num:
'.RANDOM_MAX,
'
;result
count:'.COUNT,
'<br/>';
invoke_entry('rand1');
invoke_entry('rand2');
invoke_entry('rand3');
invoke_entry('rand4');
function
invoke_entry($func_name)
{
$time
=
new
time();
$time->time_start();
call_user_func($func_name);
echo
$func_name.'
time
spend:
',
$time->time_spend();
echo
'<br/>';
}
function
rand1()
{
$numbers
=
range
(1,
RANDOM_MAX);
shuffle($numbers); //隨機打亂數組
$result
=
array_slice($numbers,
1,
COUNT);
return
$result;
}
function
rand2()
{
$result
=
array();
while(count($result)<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX); //mt_rand()是比rand()更好更快的隨機函數
$result
=
array_unique($result);
//刪除數組中重復的元素
}
return
$result;
}
function
rand3()
{
$result
=
array();
while(count($result)
<
COUNT)
{
$_tmp
=
mt_rand(1,
RANDOM_MAX);
if(!in_array($_tmp,
$result))
{ //當數組中不存在相同的元素時,才允許插入
$result[]
=
$_tmp;
}
}
return
$result;
}
function
rand4()
{
$result
=
array();
while
(count($result)
<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX);
$result
=
array_flip(array_flip($result)); //array_flip將數組的key和value交換
}
return
$result;
}
class
time
{
private
$_start;
public
function
time_start()
{
$this->_start
=
$this->microtime_float();
}
public
function
time_spend()
{
return
$this->microtime_float()
-
$this->_start;
}
private
function
microtime_float()
{
list($usec,
$sec)
=
explode("
",
microtime());
return
((float)$usec
+
(float)$sec);
}
}
?>
③ php生成隨機數
<?php
$number = '';//初始化一個幸運數數
$num = rand(1,100); //得到一個1-100的隨機數
if($num >=1 and $num<=20){
$number = 1; //如果隨機數在1-20 那麼這個幸運數就為1 ,也就是說幸運數1的概率為20%
}else if($num >=21 and $num <=41 ){
$number = 2; //如果隨機數在21-41 那麼這個幸運數就為2 ,也就是說幸運數2的概率為21%
}else if..... //依次類推
我這里的1-20 21-41 這個區間是亂寫的 你可以打亂 意思就是說從1-100中間得到一個隨機數
再給這個隨機數添加一個概率 如果說這個隨機數是在1-20直接的任意一個那麼幸運數就為1,也就是說出現1的概率為20%
④ php隨機數生成的函數是
php提供的隨機數函數rand(),rand()函數將返回隨機整數,具體使用方法如下:rand(min,max)
可選參數min和max可以使rand() 返回0到rand_max之間的偽隨機整數,例如,想要5到15(包括 5 和 15)之間的隨機數,用 rand(5, 15)
⑤ PHP隨機數中的多少執行A,其它執行B該如何寫函數呢
你是16進制數,用rand()或mt_rand()分段生成再拼起來。
隨機字元串生成法:
function randomkeys($length)
{
$output='';
for ($a = 0; $a < $length; $a++) {
$output .= chr(mt_rand(33, 126)); //生成php隨機數
}
return $output;
}
echo randomkeys(8);
其中,mt_rand()生成一個介於33到126之間的php隨機數,然後用chr()函數轉化成字元。
⑥ 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,即在前面生成的數字基礎上加一
}
(6)php產生隨機數擴展閱讀:
密碼學安全偽隨機性。其定義為,給定隨機樣本的一部分和隨機演算法,不能有效的演算出隨機樣本的剩餘部分。
真隨機性。其定義為隨機樣本不可重現。實際上只要給定邊界條件,真隨機數並不存在,可是如果產生一個真隨機數樣本的邊界條件十分復雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真隨機數。