工作笔记

2018/9/13

  1. mt_rand()函数

说明:
int mt_rand( void )
int mt_rand ( int $min , int $max )

mt_rand()函数用户生成一个随机整数,可指定min和max,用法以及功能和rand()函数相同,但是与rand()函数不同的是mt_rand()函数生成随机数的平均速度是rand()函数的4倍,原因是因为rand()函数使用的老lidc随机数发生器具有一些不确定和未知的特性,而且速度很慢,而mt_rand()函数使用的是Mersenne Twister中已知的特性作为随机数发生器。

  1. Mersenne Twister 梅森旋转算法

以下摘自维基百科:
简介:
    梅森旋转算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士[1]在1997年开发,基于有限二进制字段上的矩阵线性递归 {\displaystyle F_{2}} F_{{2}}。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。

优点:
1.  周期非常长,达到219937−1。尽管如此长的周期并不必然意味着高质量的伪随机数,但短周期(比如许多旧版本软件包提供的232)确实会带来许多问题。
2.  在1 ≤ k ≤ 623的维度之间都可以均等分布。
3.  除了在统计学意义上的不正确的随机数生成器以外,在所有伪随机数生成器法中是最快的(当时)。

缺点:
为了性能,这个算法付出了巨大的空间成本(当时而言):需要 2.5 KiB 的缓存空间。2011年,松本真和西村拓士针对这一问题提出了一个更小的版本,仅占127 bits(1字节/Byte = 8比特/bit)的 TinyMT (Tiny Mersenne Twister)。

  1. sprintf()函数

说明:
sprintf( str $format , $arg1 , $arg2 , $arg++)

sprintf() 函数把格式化的字符串写入变量中。
arg1、arg2、++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

详细文档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章