我完成了标准偏差...但仍然存在差异我无法解决...当我手动计算标准偏差时...答案与我的系统输出不同。>。<
而对于mode ..我使用了一个数组..这是我的代码:
$sample = array($one[$ctr],$two[$ctr],$three[$ctr],$four[$ctr],$five[$ctr],$six[$ctr],$seven[$ctr],$eight[$ctr],$nine[$ctr],$ten[$ctr],$fda[$ctr]);
rsort($sample);
$holder = $sample[0];
//$holder = $mode;
排序成功..我可以得到最高的数字......但是......我需要使用fpdf将$ holder的值打印到表格中。
但..当我尝试运行系统时...... $ holder的价值...没有打印在表格中...任何关于我如何打印$ holder的价值的想法......或者......值在表中不可见? >。<再次感谢...... :)
答案 0 :(得分:0)
对于标准偏差,请尝试类似
的内容$count = count($sample);
$avg = array_sum($sample) / $count;
$standardDividend = 0;
foreach($sample as $val)
$standardDividend += (pow(($val - $avg), 2));
$standardDev = pow(($standardDividend / $count), .5);
理论上应该有效。
就模式而言,你使用了错误的排序。 rsort()
从最高到最低排序,而不是从大多数存在到最不存在。所以$sample
$sample = array(1, 1, 1, 1, 1, 1, 1, 15);
rsort($sample);
$mode = = $sample[0];
等于15,而不是预期的1。相反,尝试:
$mode = arsort(array_count_values($sample));
$mode = $sample[0];
这将返回找到的第一个模式。如果有多个模式,则只返回一个模式。此外,即使没有模式,它也总会返回一些内容。但这是一个开始。