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
PHP随机数生成问题 10000个循环 范围0-1 基本平均数:0.5 基准标准偏差:0.28867134595 ======================================= 兰特山() 平均数:0.337839939116 标准偏差:0.264176807272 --- hexdec(sha1(*GUID*)) 平均值:0.37834 标准偏差:0.284251515902_Php_Math_Random_Statistics_Probability - Fatal编程技术网

PHP随机数生成问题 10000个循环 范围0-1 基本平均数:0.5 基准标准偏差:0.28867134595 ======================================= 兰特山() 平均数:0.337839939116 标准偏差:0.264176807272 --- hexdec(sha1(*GUID*)) 平均值:0.37834 标准偏差:0.284251515902

PHP随机数生成问题 10000个循环 范围0-1 基本平均数:0.5 基准标准偏差:0.28867134595 ======================================= 兰特山() 平均数:0.337839939116 标准偏差:0.264176807272 --- hexdec(sha1(*GUID*)) 平均值:0.37834 标准偏差:0.284251515902,php,math,random,statistics,probability,Php,Math,Random,Statistics,Probability,根据mt_rand是最好的现成PHP方法 然而,问题在于随机数的极小子集。如果在0和1之间生成random,则会得到非常小的偏差。因此,您可以在生成数字时增加数字,然后按最前面的数字进行划分 在我的跑步中,平均值为0.50015533,偏差为0.2901565152368 请记住,如果再次开始对值进行四舍五入以获得实际的0或1,则标准偏差将在0.5左右 守则: 10,000 Loops Range 0-1 Base Average: 0.5 Base Standard Deviation: 0.

根据
mt_rand
是最好的现成PHP方法

然而,问题在于随机数的极小子集。如果在0和1之间生成random,则会得到非常小的偏差。因此,您可以在生成数字时增加数字,然后按最前面的数字进行划分

在我的跑步中,平均值为
0.50015533
,偏差为
0.2901565152368

请记住,如果再次开始对值进行四舍五入以获得实际的
0
1
,则标准偏差将在
0.5左右

守则:

10,000 Loops
Range 0-1
Base Average: 0.5
Base Standard Deviation: 0.288675134595
=======================================

mt_rand()
Average: 0.337839939116
Standard Deviation: 0.264176807272
---

hexdec(sha1(*GUID*))
Average: 0.37834
Standard Deviation: 0.284251515902 <--
---

mt_rand() based from a SET of defined numbers [01234567899]
Average: 0.496042248107 <--
Standard Deviation: 0.321017564651
---


您希望得到什么样的输出?10000个介于0和1之间的随机数,平均输出0.5,标准偏差为0.288675195(1/sqrt(12))没有问题。我确实看到我有一个
$start=1
,应该是
$start=0
。现在更新。您还可以将顶部用作
mt\u getrandmax()
。还有你的随机浮动以获得最佳效果
<?php
$start = 0;
$top = 10000;
$ar = array();
for ($x=1;$x<=10000;$x++) {
  $val = mt_rand($start, $top) / $top;
  $ar[] = $val;
}

$mean = array_sum($ar) / sizeof($ar);

$devs = array();
foreach($ar as $num) {
    $devs[] = pow($num - $mean, 2);
}

$standard_deviation = sqrt(array_sum($devs) / sizeof($devs));

echo 'Max: ' . max($ar);
echo chr(10);
echo 'Min: ' . min($ar);
echo chr(10);
echo 'Average: ' . $mean;
echo chr(10);
echo 'Deviation: ' . $standard_deviation;
?>