当前位置: 首页 > 面试题库 >

mt_rand的缺点是什么?

何峰
2023-03-14
问题内容

偏见的定义是什么:

当max超过2 ^ 32时,mt_rand()返回值的分布在PHP的64位版本上偏向偶数。

如果这是替代四舍五入规则中的那种偏见,我认为这并不重要(因为这种偏见并不明显)。

除了mt_rand()被宣称是比快四倍rand(),只是在前面增加3个字符!

假设mt_rand可用,那么使用它的缺点是什么?


问题答案:

mt_rand使用梅森倍捻机算法,这远远优于LCG通常使用的rand。例如,LCG
的周期仅为 2 32,而mt_rand的周期为2
19937-1。此外,当绘制到多维空间中时,LCG生成的所有值都将位于线或平面上。而且,不仅在实践上可行,而且相对容易地确定LCG的html" target="_blank">参数。LCG的唯一优势是可能稍快一些,但是在使用php进行编码时,规模是完全不相关的。

但是,mt_rand也不适合用于加密目的 (生成令牌,密码或加密密钥)。

如果需要加密随机性,请random_int在php7中使用。在较早的php版本上,请从符合POSIX的操作系统上阅读/dev/urandom/dev/random在其上阅读。



 类似资料:
  • 问题内容: 只是想知道TreeSet的优缺点是什么,是否有人可以告诉我?谢谢! 问题答案: 收藏类之一。它使您可以按键或按键顺序访问集合中的元素。它比ArrayList或HashMap具有更多的开销。当您不需要顺序访问时,只需按键查找即可使用HashSet。使用ArrayList并使用Arrays。如果只想按顺序排列元素,则排序。TreeSet始终保持元素顺序。使用ArrayList,您可以在需要

  • 问题内容: 我正在寻找提高某些SQL性能的方法,当前CTE正在脚本中多次使用和引用。我会使用表变量来获得改进吗?(因为代码在函数内,所以不能使用临时表)。 问题答案: 您实际上必须进行性能测试-没有“是/否”答案。根据安迪·利文(Andy Living)上面链接到的文章,CTE只是查询或子查询的简写。 如果您在同一函数中两次或多次调用它,则填充表变量然后加入该表变量或从中选择表变量可能会获得更好的

  • 问题内容: 该文档声称: 和 除了速度略有降低之外,在所有属性中使用doc值还有哪些弊端? 谢谢! 问题答案: 趋势是尽可能使用它,因为它们的性能比现场数据越来越高(尤其是自ES 1.4开始)。目前的缺点之一是您不能将它们与已分析的字符串字段和布尔字段一起使用。另一个缺点是,如果您仍在使用方面,请分别说。Kibana 3,因为两者都没有利用doc值,但是您可以分别迁移到聚合。升级到Kibana 4

  • 本文向大家介绍iframe是什么?有什么缺点?相关面试题,主要包含被问及iframe是什么?有什么缺点?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 定义:iframe元素会创建包含另一个文档的内联框架 提示:可以将提示文字放在之间,来提示某些不支持iframe的浏览器 缺点: 会阻塞主页面的onload事件 搜索引擎无法解读这种页面,不利于SEO iframe和主页面共享连接池,而浏览

  • 本文向大家介绍你觉得你的优点是什么,缺点又是什么呢相关面试题,主要包含被问及你觉得你的优点是什么,缺点又是什么呢时的应答技巧和注意事项,需要的朋友参考一下 优点:对任何事物能够保持好奇心、很强的执行力、追求上进。 缺点:有些事情考虑太多,总想找出最好的办法,所以有的时候会耽误进度。所以要学会抓住主要矛盾,学会取舍。

  • 本文向大家介绍什么是闭包?优缺点分别是什么?相关面试题,主要包含被问及什么是闭包?优缺点分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 上面就是闭包,有独立的作用域,且作用域的变量不会在程序中释放