<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                * 第一種方法用mt_rand() * 第二種方法(最快的) * 第三種取當時時間戳 * 第四種打亂字符串 * 5 //開始創建驗證碼(直接用函數生成,比較方便快捷) * php mt\_rand生成0~1隨機小數的效果比較 **第一種方法用mt\_rand()** ~~~ function?GetRandStr($length){ $str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $len=strlen($str)-1; $randstr=''; for($i=0;$i<$length;$i++){ $num=mt_rand(0,$len); $randstr?.=?$str[$num]; } return?$randstr; } $number=GetRandStr(6); echo?$number; ~~~ **第二種方法(最快的)** ~~~ function?make_password(?$length?=?8?) { ????//?密碼字符集,可任意添加你需要的字符 ????$chars?=?array('a',?'b',?'c',?'d',?'e',?'f',?'g',?'h',? ????'i',?'j',?'k',?'l','m',?'n',?'o',?'p',?'q',?'r',?'s',? ????'t',?'u',?'v',?'w',?'x',?'y','z',?'A',?'B',?'C',?'D',? ????'E',?'F',?'G',?'H',?'I',?'J',?'K',?'L','M',?'N',?'O',? ????'P',?'Q',?'R',?'S',?'T',?'U',?'V',?'W',?'X',?'Y','Z',? ????'0',?'1',?'2',?'3',?'4',?'5',?'6',?'7',?'8',?'9',?'!',? ????'@','#',?'$',?'%',?'^',?'&',?'*',?'(',?')',?'-',?'_',? ????'[',?']',?'{',?'}',?'<',?'>',?'~',?'`',?'+',?'=',?',',? ????'.',?';',?':',?'/',?'?',?'|'); ????//?在?$chars?中隨機取?$length?個數組元素鍵名 ????$keys?=?array_rand($chars,?$length);? ????$password?=?''; ????for($i?=?0;?$i?<?$length;?$i++) ????{ ????????//?將?$length?個數組元素連接成字符串 ????????$password?.=?$chars[$keys[$i]]; ????} ????return?$password; } ~~~ **第三種取當時時間戳** ~~~ function?get_password(?$length?=?8?)? { ????$str?=?substr(md5(time()),?0,?$length);//md5加密,time()當前時間戳 ????return?$str; } ~~~ **第四種打亂字符串** ~~~ function?getrandstr(){ $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'; $randStr?=?str_shuffle($str);//打亂字符串 $rands=?substr($randStr,0,6);//substr(string,start,length);返回字符串的一部分 return?$rands; } ~~~ **5 //開始創建驗證碼(直接用函數生成,比較方便快捷)** ~~~ $code?=?rand(10000,?99999); ~~~ **php mt\_rand生成0~1隨機小數的效果比較** lcg\_value說明 float lcg\_value ( void ) lcg\_value() 返回范圍為 (0, 1) 的一個偽隨機數。本函數組合了周期為 2^31 - 85 和 2^31 - 249 的兩個同余發生器。本函數的周期等于這兩個素數的乘積。 返回:范圍為 (0, 1) 的偽隨機數。 ~~~ <?php for($i=0;?$i<5;?$i++){ ????echo?lcg_value().PHP_EOL; } ?> ~~~ 輸出: 0.11516515851995 0.064684551575297 0.68275174031189 0.55730746529099 0.70215008878091 兩種生成0~1隨機小數方法進行比較 #### 1.執行時間比較 執行10萬次基于mt\_rand()與mt\_getrandmax()算法的運行時間 ~~~ <?php /** ?*?生成0~1隨機小數 ?*?@param??Int???$min ?*?@param??Int???$max ?*?@return?Float ?*/ function?randFloat($min=0,?$max=1){ ????return?$min?+?mt_rand()/mt_getrandmax()?*?($max-$min); } ? //?獲取microtime function?get_microtime(){ ????list($usec,?$sec)?=?explode('?',?microtime()); ????return?(float)$usec?+?(float)$sec; } ? //?記錄開始時間 $starttime?=?get_microtime(); ? //?執行10萬次獲取隨機小數 for($i=0;?$i<100000;?$i++){ ????randFloat(); } ? //?記錄結束時間 $endtime?=?get_microtime(); ? //?輸出運行時間 printf("run?time?%f?ms\r\n",?($endtime-$starttime)*1000); ?> ~~~ 輸出:run time 266.893148 ms 執行10萬次lcg\_value()的運行時間 ~~~ <?php //?獲取microtime function?get_microtime(){ ????list($usec,?$sec)?=?explode('?',?microtime()); ????return?(float)$usec?+?(float)$sec; } ? ? //?記錄開始時間 $starttime?=?get_microtime(); ? ? //?執行10萬次獲取隨機小數 for($i=0;?$i<100000;?$i++){ ????lcg_value(); } ? ? //?記錄結束時間 $endtime?=?get_microtime(); ? ? //?輸出運行時間 printf("run?time?%f?ms\r\n",?($endtime-$starttime)*1000); ?> ~~~ 輸出:run time 86.178064 ms 執行時間上比較,因為lcg\_value()直接是php原生方法,而mt\_rand()與mt\_getrandmax()需要調用兩個方法,并需要進行計算,因此lcg\_value()的執行時間大約快3倍。 **2.隨機效果比較** 基于mt\_rand()與mt\_getrandmax()算法的隨機效果 ~~~ <?php /** ?*?生成0~1隨機小數 ?*?@param??Int???$min ?*?@param??Int???$max ?*?@return?Float ?*/ function?randFloat($min=0,?$max=1){ ????return?$min?+?mt_rand()/mt_getrandmax()?*?($max-$min); } ? ? header('content-type:?image/png'); $im?=?imagecreatetruecolor(512,?512); $color1?=?imagecolorallocate($im,?255,?255,?255); $color2?=?imagecolorallocate($im,?0,?0,?0); for($y=0;?$y<512;?$y++){ ????for($x=0;?$x<512;?$x++){ ????????$rand?=?randFloat(); ????????if(round($rand,2)>=0.5){ ????????????imagesetpixel($im,?$x,?$y,?$color1); ????????}else{ ????????????imagesetpixel($im,?$x,?$y,?$color2); ????????} ????} } imagepng($im); imagedestroy($im); ?> ~~~ lcg\_value()的隨機效果 ~~~ <?php header('content-type:?image/png'); $im?=?imagecreatetruecolor(512,?512); $color1?=?imagecolorallocate($im,?255,?255,?255); $color2?=?imagecolorallocate($im,?0,?0,?0); for($y=0;?$y<512;?$y++){ ????for($x=0;?$x<512;?$x++){ ????????$rand?=?lcg_value(); ????????if(round($rand,2)>=0.5){ ????????????imagesetpixel($im,?$x,?$y,?$color1); ????????}else{ ????????????imagesetpixel($im,?$x,?$y,?$color2); ????????} ????} } imagepng($im); imagedestroy($im); ?> ~~~ 以上是“php如何設置隨機數”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看