皆さん、こんにちは。数字を含む入力ファイルを読み取り、次の方法を使用して標準偏差を求めるプログラムを作成する必要があります。
sqrt(( x1 - mu )^2 + ( x2 - mu )^2 + ( x3 - mu )^2 + ( x4 - mu )^2)/mu
x は読み取った桁数に等しく、mu は平均値に等しくなります。while ループ内で入力ファイルから読み込まれた値に異なる変数 (x1、x2、x3、x4) を設定する方法がわからないため、これを行うのに問題があります。また、最初の桁を読み取り、その後 3 桁ごとに読み取ることになっていることに注意することも重要です。これは私がこれまでに持っているものです:
fin.open(FileName.c_str());
if (fin.fail())
{
cout <<"Bad file name or location.\n" ;
exit(0);
}
fin >> X;
first_score = X;
Counter = 0, Sum=0;
while (!fin.eof() )
{
Counter++;
if (Counter%3==0)
{
fin >> X;
Sum += X;
Counter++;
Counter2 ++ ;
Avg = (Sum+first_score)/(Counter2+1);
deviation = pow((X-Avg),2);
sum_of_deviations += deviation;
}
fin >> Score;
}
quotient_of_deviations = sum_of_deviations/Counter2;
standard_dev2 = sqrt(quotient_of_deviations);
fin.close();
すべての x 値から異なる平均を減算しているため、このコードが論理的に正しくないことはわかっています。while ループが実行されるたびに、while ループ内の X を新しい変数に割り当てる方法を誰かが知っていますか? これができれば、ループの外側で同じ平均値で各 x 値を減算できます。皆さんが私の問題を理解できるように、十分に説明したことを願っています。そうでない場合は、喜んで詳しく説明します。お時間をいただきありがとうございます。