1、生成隨機數發生器種子的函數
srand()、 mt_srand()
區別:mt_srand() 比 srand() 更好的生成隨機數發生器種子
定義:
void srand([int $seed])
void mt_srand([int $seed])
用 seed
來給隨機數發生器播種。 沒有設定 seed
參數時,會被設為隨時數。
參數:
seed 可選的種子值
返回值: 沒有
#example
echo microtime();
=> 0.22750900 1534295333
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() 給隨機數發生器播種 ,因為現在是由系統自動完成的。
2、隨機數生成函數 rand() 、mt_rand()
定義:
int rand ( void )
int rand ( int $min
, int $max
)
int mt_rand ( void )
int mt_rand ( int $min
, int $max
)
很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數默認使用 libc 隨機數發生器。
mt_rand() 函數用了 » Mersenne Twister 中已知的特性作為隨機數發生器,它可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。
如果沒有提供可選參數 min
和 max
,mt_rand() 返回 0 到 mt_getrandmax() 之間的偽隨機數。
getrandmax() 最大值為:32767
mt_getrandmax() 最大值為:2147483647
提示:自PHP 4.2 開始 隨機數發生器有系統自動進行播種。
PHP 常用數學函數
- abs — 絕對值
- acos — 反余弦
- acosh — 反雙曲余弦
- asin — 反正弦
- asinh — 反雙曲正弦
- atan2 — 兩個參數的反正切
- atan — 反正切
- atanh — 反雙曲正切
- base_convert — 在任意進制之間轉換數字
- bindec — 二進制轉換為十進制
- ceil — 進一法取整
- cos — 余弦
- cosh — 雙曲余弦
- decbin — 十進制轉換為二進制
- dechex — 十進制轉換為十六進制
- decoct — 十進制轉換為八進制
- deg2rad — 將角度轉換為弧度
- exp — 計算 e 的指數
- expm1 — 返回 exp(number) - 1,甚至當 number 的值接近零也能計算出准確結果
- floor — 舍去法取整
- fmod — 返回除法的浮點數余數
- getrandmax — 顯示隨機數最大的可能值
- hexdec — 十六進制轉換為十進制
- hypot — 計算一直角三角形的斜邊長度
- intdiv — 對除法結果取整
- is_finite — 判斷是否為有限值
- is_infinite — 判斷是否為無限值
- is_nan — 判斷是否為合法數值
- lcg_value — 組合線性同余發生器
- log10 — 以 10 為底的對數
- log1p — 返回 log(1 + number),甚至當 number 的值接近零也能計算出准確結果
- log — 自然對數
- max — 找出最大值
- min — 找出最小值
- mt_getrandmax — 顯示隨機數的最大可能值
- mt_rand — 生成更好的隨機數
- mt_srand — 播下一個更好的隨機數發生器種子
- octdec — 八進制轉換為十進制
- pi — 得到圓周率值
- pow — 指數表達式
- rad2deg — 將弧度數轉換為相應的角度數
- rand — 產生一個隨機整數
- round — 對浮點數進行四舍五入
- sin — 正弦
- sinh — 雙曲正弦
- sqrt — 平方根
- srand — 播下隨機數發生器種子
- tan — 正切
- tanh — 雙曲正切
PHP 預定義常量