廊坊SEO-解決各種網站問題••,中小企業線上幫手
網站最佳化專家

網站首頁 網站模板 正文

如何用php隨機生成一個數字

2022-03-31 網站模板 286 ℃ 0 評論

如何用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);

?>


括號裡面是數字的範圍••,可以根據自己的需要修改範圍││◕。


標籤╃╃│:

本文暫時沒有評論••,來新增一個吧(●'◡'●)

歡迎 發表評論:

搜尋
網站分類
文章歸檔
標籤列表
麻批好紧日起要舒服死了,精品免费一区二区三区在,国产精品无码一区二区三区不卡,久久久久亚洲av无码专区导航