Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于PHP中的随机数范围_Php_Random - Fatal编程技术网

关于PHP中的随机数范围

关于PHP中的随机数范围,php,random,Php,Random,我刚刚在Windows 8 64位中安装了PHPVC11 x64线程安全。我试图通过调用mt\u rand()来运行随机数。据我所知,mt_rand()使用32位mt算法,它应该支持[0429697295]。但是如果我运行mt_getrandmax(),它将返回2147483647。所以我认为它返回的数字应该是有符号的32位整数 我尝试调用mt_rand(-2147483648,mt_getrandmax())10次,但大多数结果为零。因此,我想知道在这种情况下,MT算法是否不返回完整的32位整

我刚刚在Windows 8 64位中安装了PHPVC11 x64线程安全。我试图通过调用
mt\u rand()
来运行随机数。据我所知,
mt_rand()
使用32位mt算法,它应该支持
[0429697295]
。但是如果我运行
mt_getrandmax()
,它将返回2147483647。所以我认为它返回的数字应该是有符号的32位整数


我尝试调用
mt_rand(-2147483648,mt_getrandmax())
10次,但大多数结果为零。因此,我想知道在这种情况下,MT算法是否不返回完整的32位整数。

MT\u rand根据手册返回一个
int
,默认情况下是带符号的int。其默认最小值为0,但其最大值是有符号整数的值(其最小值也是如此)。如果你能说出你在这里真正想要达到的目标,你的问题会得到改进。我想这篇文章可能会回答你的问题,谢谢。我试图获得一个32位的随机数。基于Mersenne Twister算法,支持32位整数。我在C++/C/和Ruby中测试了几种不同的MT包装器,它们都能够在[04294967295]中返回无符号int的数字,或者在[-2147483648,2147483647]中返回有符号int的数字。我想知道PHP版本是否也支持相同的范围。正如您所说,返回的数字是signed int,默认的min是0,但它没有说明实际下限。据我所知,喂食-2147483648作为min应该是可以的。但实际测试并不支持这一点。codepad也有这个问题:我认为这是一个版本/平台错误,因为3v4l没有显示这一点: