こんばんは!
今日はデータの平均、分散及び標準偏差を求めるプログラムを作りました![]()
分散というのは、各変量xと平均mとの隔たり(偏差)の二乗したものの平均のことです。
式で表すと分散vは
と表されます。この分散vの正の平方根をとったものが標準偏差です。
皆さんも受験などの際には気にかかるんじゃないでしょうか![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
ソースコード![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
#include <stdio.h>
#include <math.h>
#define N 64
double average(double x[N],int n);
double dispersion(double x[N],int n);
/*平均を計算する関数*/
double average(double x[N],int n){
double sum = 0.0;
int i;
/*データの総和を計算*/
for( i = 0; i < n; i++ ){
sum += x[i];
}
return sum / n;
}
/*標準偏差を計算する関数*/
double dispersion(double x[N],int n){
double sumv = 0.0;
int i;
/*偏差の二乗の総和を計算*/
for( i = 0; i < n; i++ ){
sumv += ( x[i] - average(x,n) ) * ( x[i] - average(x,n) );
}
return sumv / n;
}
int main( void )
{
int i, k;
double d[N], m, v, s; /*mは平均、vは分散、sは標準偏差*/
printf("データの個数を入力してください\n");
scanf("%d", &k);
printf("データの数値を入力してください\n");
for ( i = 0; i < k; i++ ){ /*データの入力*/
scanf("%lf", &d[i]);
}
m = average(d,k); /*平均の計算*/
v = dispersion(d,k); /*分散の計算*/
s = sqrt( v ); /*分散の平方根をとる*/
/*平均、分散、標準偏差を表示*/
printf(" 平均=%10.5f \n 分散=%10.5f \n 標準偏差=%10.5f\n", m, v, s);
return 0;
}
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
いちいち入力するのは面倒なのでファイル入出力を使った方がよかったかもしれません![]()
今回は少し簡単でしたね。![]()
もう少し複雑な処理にも挑戦していきたいです![]()
『今日のどうでもいいこと』
たまにベートーベンの第九が聞きたくなります!![]()
本日はここまでです。
またねっ ![]()
![]()
