国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

基于php 隨機(jī)數(shù)的深入理解

2024-05-04 23:09:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
php mt_srand 播下一個(gè)更好的隨機(jī)數(shù)發(fā)生器種子
mt_srand
(PHP 3 >= 3.0.6, PHP 4, PHP 5)
mt_srand -- 播下一個(gè)更好的隨機(jī)數(shù)發(fā)生器種子
說(shuō)明

復(fù)制代碼 代碼如下:


void mt_srand ( int seed )


用 seed 來(lái)給隨機(jī)數(shù)發(fā)生器播種。從 PHP 4.2.0 版開(kāi)始,seed 參數(shù)變?yōu)榭蛇x項(xiàng),當(dāng)該項(xiàng)為空時(shí),會(huì)被設(shè)為隨時(shí)數(shù)。
例子 1. mt_srand() 范例

復(fù)制代碼 代碼如下:


Code highlighting produced by Actipro CodeHighlighter (freeware)><?php
// seed with microseconds
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>


注: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機(jī)數(shù)發(fā)生器播種,現(xiàn)已自動(dòng)完成。
參見(jiàn) mt_rand(),mt_getrandmax() 和 srand()。

PHP mt_rand() 函數(shù)
定義和用法
mt_rand() 使用 Mersenne Twister 算法返回隨機(jī)整數(shù)。
語(yǔ)法

復(fù)制代碼 代碼如下:


mt_rand(min,max)


說(shuō)明
如果沒(méi)有提供可選參數(shù) min 和 max,mt_rand() 返回 0 到 RAND_MAX 之間的偽隨機(jī)數(shù)。例如想要 5 到 15(包括 5 和 15)之間的隨機(jī)數(shù),用 mt_rand(5, 15)。
很多老的 libc 的隨機(jī)數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認(rèn)使用 libc 隨機(jī)數(shù)發(fā)生器。mt_rand() 函數(shù)是非正式用來(lái)替換它的。該函數(shù)用了 Mersenne Twister 中已知的特性作為隨機(jī)數(shù)發(fā)生器,它可以產(chǎn)生隨機(jī)數(shù)值的平均速度比 libc 提供的 rand() 快四倍。
提示和注釋
注釋?zhuān)鹤?PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機(jī)數(shù)發(fā)生器播種,現(xiàn)在已自動(dòng)完成。
注釋?zhuān)涸?3.0.7 之前的版本中,max 的含義是 range 。要在這些版本中得到和上例相同 5 到 15 的隨機(jī)數(shù),簡(jiǎn)短的例子是 mt_rand (5, 11)。
例子
在本例中,我們會(huì)返回一些隨機(jī)數(shù):

復(fù)制代碼 代碼如下:


<?phpecho(mt_rand());
echo(mt_rand());
echo(mt_rand(10,100));
?>


輸出類(lèi)似:
3150906288
513289678
35
注意:上面這個(gè)函數(shù)給出的隨機(jī)整數(shù),數(shù)字之外的字符是不會(huì)出來(lái)的,若想其他字符產(chǎn)生,就需另自定義方法,如下所示:

復(fù)制代碼 代碼如下:


<?php
/*
* $length:隨機(jī)數(shù)字符串的長(zhǎng)度
* $type:產(chǎn)生隨機(jī)數(shù)的類(lèi)型
* */
function random($length, $type = "") {
$chars = !$type ? "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" : "0123456789abcdef";
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++) {
$string .= $chars[mt_rand(0, $max)];
}
return $string;
}
$var=random(32,'haha');
echo($var);
?>


輸出:
fe61e294e5f46437cb3a92b92643ead6
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桐柏县| 永兴县| 霍林郭勒市| 安庆市| 古蔺县| 漯河市| 琼中| 苏尼特右旗| 武川县| 阿克| 和林格尔县| 同心县| 巴彦淖尔市| 黄冈市| 青海省| 宁陕县| 定安县| 清河县| 明星| 五莲县| 崇礼县| 阳朔县| 大名县| 双辽市| 怀化市| 青铜峡市| 长丰县| 泾源县| 边坝县| 阜康市| 会东县| 喀什市| 五莲县| 湟中县| 德化县| 玛曲县| 鄯善县| 长宁县| 徐州市| 鄂伦春自治旗| 盱眙县|