網站首頁 網站模板 正文
如何用php隨機生成一個數字▩↟│◕·,先解釋下原理▩↟│◕·,然後直接分享程式碼₪₪◕•。
<?php
//seed使用者自定義函式以微秒作為種子
function seed()
{
list($msec, $sec) = explode(' ', microtime());
return (float) $sec;
}
//播下隨機數發生器種子▩↟│◕·,用srand函式呼叫seed函式的返回結果
srand(seed());
//輸出產生的隨機數▩↟│◕·,隨機數的範圍為10-100
echo rand(10,100);
?>
上面這個和下面這個不是沒什麼不同嗎?都是隨機輸出10-100之間的數,新人學習,可能問的太簡單了呵呵
<?php
echo rand(10,100);
?>
mt_rand(10,100);
srand是種子▩↟│◕·,如果不設的話預設是1
rand一般是利用種子做引數的一種固定的運算
你試一下就知道了▩↟│◕·,不設種子或者設一個固定的種子▩↟│◕·,執行rand
然後再關了瀏覽器再開▩↟│◕·,再執行rand
你會發現結果一直是一樣的
但是如果用一個隨機數做種子▩↟│◕·,那每次執行結果就近似於隨機的
先說rand()函式吧▩↟│◕·,rand([int min], [int max]) 本函式從min和max之間取一個隨機數₪₪◕•。若沒有指定隨機數的最大及最小範圍▩↟│◕·,本函式會自動的從0到RAND_MAX中取一個隨機數₪₪◕•。
但是如果只用rand()這個函式▩↟│◕·,隨機數的亂度很大▩↟│◕·,每次在取隨機數之前最好使用srand()函式▩↟│◕·,以配置新的隨機數種子₪₪◕•。
解釋一下下面這個用法(一般都是這樣用這兩個函式的)╃│▩│✘:
srand((double)microtime()*1000000);
$rand_number= rand();
microtime()返回了兩個值╃│▩│✘:當前毫秒和時間戳▩↟│◕·,我們要提取隨機數▩↟│◕·,只能從毫秒中取一個隨機數▩↟│◕·,(double)microtime()就只返回當前的毫秒值₪₪◕•。
microtime()是以秒為單位的毫秒數▩↟│◕·,因而值都是小數▩↟│◕·,乘以1000000將其換算為整數₪₪◕•。
;它們的工作流程如下╃│▩│✘:
(1):首先▩↟│◕·,給srand()提供一個”種子”;,它是一個unsigned_int型別的值₪₪◕•。
(2):_然後▩↟│◕·,呼叫rand(),它會根據提供給srand()的值返回一個隨機數(範圍在_0~32767之間)
(3):根據需要多次呼叫rand(),不斷得到新的隨機數₪₪◕•。
(4):無論什麼時候可以給srand()提供一個新的“種子”▩↟│◕·,從而進一步“隨機化”rand()的輸出結果₪₪◕•。
最終的程式碼是
<?php
echo rand(10,100);
?>
括號裡面是數字的範圍▩↟│◕·,可以根據自己的需要修改範圍₪₪◕•。
- 上一篇╃│▩│✘: 帝國cms如何自動稽核生成文章▩↟│◕·,帝國自動稽核外掛分享
- 下一篇╃│▩│✘: 帝國cms如何登陸後臺地址▩↟│◕·,如何讓id從1開始
你 發表評論:
歡迎- 2022-12-07帝國cms如何在首頁和列表頁分別呼叫文章欄目名稱
- 2022-12-01帝國cms如何清理全部tag標籤
- 2022-11-29如何重新安裝zblog▩↟│◕·,在已有資料庫的情況下
- 2022-11-24python▩↟│◕·,py採集過程中谷歌核心版本需要更新怎麼操作
- 2022-07-14css如何設定首航縮排兩字元
- 2022-07-06帝國cms如何登陸後臺地址▩↟│◕·,如何讓id從1開始
- 2022-03-31如何用php隨機生成一個數字
- 2022-03-04帝國cms如何自動稽核生成文章▩↟│◕·,帝國自動稽核外掛分享
- 搜尋
- 文章歸檔
本文暫時沒有評論▩↟│◕·,來新增一個吧(●'◡'●)