php生成隨機數
『壹』 php ThinkPhP 5.1 按概率生成隨機數
echo (rand(1,100) <= 70 ? rand(1,50) : rand(51,100))/100;
先說明:偽隨機
rand(1,100)產生1~100范圍內隨機數
如果 產生的隨機數 小於等於 70
返回 1~50 隨機數
否則返回 51~100 隨機數
最後隨機數/100即可。
為什麼除以100,是因為rand 的參數均為int,所以放大100倍獲取隨機,得出結果後再縮小100倍剛好就是分了。
『貳』 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>";
?>
『叄』 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隨機數生成的函數是
php提供的隨機數函數rand(),rand()函數將返回隨機整數,具體使用方法如下:rand(min,max)
可選參數min和max可以使rand() 返回0到rand_max之間的偽隨機整數,例如,想要5到15(包括 5 和 15)之間的隨機數,用 rand(5, 15)
『伍』 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怎麼生成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這樣的字元串,隨機!
『柒』 求一個生成四位隨機數的PHP代碼
最簡單的代碼:
圖片:
文字:
<?php
echo "四位隨機代碼是:". mt_rand(999, 9999); //隨機值得范圍是999-9999
?>
在PHP中 mt_rand是隨機函數,括弧中是隨機值范圍:從最小值到最大值之間隨機變換。
(7)php生成隨機數擴展閱讀:
1、mt_rand定義和用法:
mt_rand (PHP 4, PHP 5, PHP 7) —生成更好的隨機數。
2、mt_rand說明:
intmt_rand(void)。
intmt_rand(int$min,int$max)。
很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的rand()函數默認使用 libc 隨機數發生器。mt_rand()函數是非正式用來替換它的。
如果沒有提供可選參數min和max,mt_rand()返回 0 到mt_getrandmax()之間的偽隨機數。例如想要 5 到 15(包括 5 和 15)之間的隨機數,用mt_rand(5, 15)。
3、參數:
min 可選的、返回的最小值(默認:0)。
max 可選的、返回的最大值(默認:mt_getrandmax())。
4、返回值:
返回min(或者 0) 到max(或者是到mt_getrandmax(),包含這個值)之間的隨機整數。
PHP官網-mt_rand
『捌』 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生成不重復隨機數、數組的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);
}
}
?>