本文实例讲述了PHP基于方差和标准差计算学生成绩的稳定性。分享给大家供大家参考,具体如下:
项目中的学生端有处个人成长档案模块,要求依据学生近期十次考试成绩通过波动采集分析学生的成绩稳定性。学过数学都知道,这处应该利用数学中的方差来实现。由于是个数学渣,不得不网上看了下相关的说明和公式,见下图
好了,有了公式,那就好办了,接下来就是套公式了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$arr1 = array (50, 100, 100, 60, 50);
$arr2 = array (73, 70, 75, 72, 70);
function variance( $arr ) {
$length = count ( $arr );
if ( $length == 0) {
return array (0,0);
}
$average = array_sum ( $arr )/ $length ;
$count = 0;
foreach ( $arr as $v ) {
$count += pow( $average - $v , 2);
}
$variance = $count / $length ;
return array ( 'variance' => $variance , 'square' => sqrt( $variance ), 'average' => $average );
}
print_r(variance( $arr1 ));
print_r(variance( $arr2 ));
|
上述代码打印
1
2
3
4
5
6
7
8
9
10
11
12
|
Array
(
[variance] => 536
[square] => 23.15167380558
[average] => 72
)
Array
(
[variance] => 3.6
[square] => 1.897366596101
[average] => 72
)
|
通过查看数据发现,尽管两个数组的平均值是一样的,但数组1波动大,成绩不稳定,数组2波动小成绩较数组1稳定。
希望本文所述对大家PHP程序设计有所帮助。