0

だから私はこのコードを持っています:

$arr = array(
  1,2,3,4,5,6
);
$num = count($arr);
$sum = array_sum($arr);
$average = $sum/$num;
foreach($arr as $val) {
  $sum += pow(($val - $average), 2);
}
$stdev = sqrt($sum / ($num - 1));

SELECT STDDEV_POP(something) FROM table;

それによってテーブルは

Something
'1'
'2'
'3'
'4'
'5'
'6'

それでも $stdev が返されます

2.7748873851023

一方、選択は戻ります1.707825127659933

stdev コードの何が問題になっていますか?

4

3 に答える 3

2

あなたの答えは正しいです:

基本式は次のとおりです。

ここに画像の説明を入力

オンライン電卓の使用

ここに画像の説明を入力

したがって:

ここに画像の説明を入力

于 2013-05-21T17:29:36.110 に答える
1

これは私にあなたの1.70を与えました

$arr = array(
  1,2,3,4,5,6
);
$num = count($arr);
$sum2 = 0;
$sum = array_sum($arr);
$average = $sum/$num;
foreach($arr as $val) {
  $sum2 += pow(($val - $average), 2);
}
$stdev = sqrt($sum2 / ($num));
echo $stdev;exit;
于 2013-05-21T17:17:49.173 に答える
0

私はこの機能を使用しています、それは私の仕事に最適です

function find_stdev($arr){
    $a=0;
    foreach($arr as $val) {
      $a += (pow($val,2));
    }
    $n = count($arr);
    $sum = array_sum($arr);
    $a = $a*$n;
    $b = pow($sum,2);
    $c = ($a-$b)/($n*($n-1));

    $stdev = sqrt($c);

    return $stdev;
}
于 2014-12-23T04:23:03.363 に答える