首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mt_rand()函数

PHP mt_rand()函数
EN

Stack Overflow用户
提问于 2012-01-05 19:46:30
回答 3查看 954关注 0票数 5

PHP随机数是可预测的吗?如果是这样,预测1到32范围内的随机数有多难?有没有办法让它变得不可预测?

代码语言:javascript
复制
<?php
function rand_best($min, $max) {
    $generated = array();
    for ($i = 0; $i < 100; $i++) {
        $generated[] = mt_rand($min, $max);
    }
    shuffle($generated);
    $position = mt_rand(0, 99);
    return $generated[$position];
}
?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-05 19:50:12

关于编程中随机函数的讨论由来已久。

看看这个:http://en.wikipedia.org/wiki/Random_number_generation

不管怎么说。随机函数今天是如此之好,以至于它们(我称之为)尽可能地接近随机。没有办法预测1,32之间的结果(或任何其他数字)。问题是,这些数字并不是真正随机的,因为计算机不能进行这样的操作。

我想说的是,除非你是在为五角大楼写东西,否则rand函数已经足够好了。

票数 7
EN

Stack Overflow用户

发布于 2012-01-05 19:49:17

假设是Linux系统,您可以使用/dev/urandom (或从中读取)或/dev/random (小心,它可能会阻塞)作为伪随机数生成器的种子。

票数 2
EN

Stack Overflow用户

发布于 2018-05-23 22:32:21

在PHP7版本之后,你也可以使用random_int()

看看这个:http://php.net/random_int

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8741967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档