私は自分の課題の標準偏差を見つけるのに苦労しています。他のことはすべてやったのですが、この最後のビットに苦労しています。私の宿題の質問は、一言で言うと、生徒のグループからの宿題の結果のテキスト ファイルが与えられます (任意の数である必要があります)。与えられた唯一のデータは、学生の名前、ファン、およびその結果です。平均成績と標準偏差を計算する必要があります。出力は次のようになります。
Student Name FAN Part 1 Part 2 Part 3 Part 4 Mark Grade
Adam Adamson adam0001 85.4 79.8 82.4 86.1 82.77% DN
Bethany Bright brig0001 89.7 85.6 84.2 82.9 84.92% DN
Cameron Carlson carl0001 55.45 49.82 60.4 42.27 50.23% P
David Dawson daws0001 72.6 78.49 80.2 65.88 74.46% CR
Evelyn Ellis elli0001 50.2 35.88 48.41 58.37 46.57% FA
Frances Fitz fitz0001 78.9 75.67 82.48 79.1 78.38% DN
Greg Gregson greg0001 24.3 32.88 29.72 28.4 30.05% F
Harriett Hope hope0001 52.2 58.93 61.5 63.44 60.12% P
Ivan Indigo indi0001 88.4 91.23 90.05 92.46 91.08% HD
Jessica Jones jone0001 82.33 89.74 81.3 84.85 85.84% HD
Average 67.948 67.804 70.066 68.377 68.44% CR
StdDev 19.4442
使用する必要がある方程式と、使用する必要がある数値はわかっていますが、それらを取得する方法がわかりません。私が何をする必要があるかをお見せしますので、あなたが私のコードをさらに理解してくれることを願っています:
the total of the averages divided by 10 = 68.442
sum = (82.77-68.442)^2 + (84.92-68.442)^2 + (50.23-68.442)^2 + ... + (85.84-68.442)^2
StdDev = Math.sqrt(sum/10)
stdDev = 19.4442
これには 3 つのクラスを使用しています。メイン クラスのトピック管理、学生の名前とファンの配列を含む Student クラスです (どちらも私の質問には関係ありませんが、シーンを設定した方がよいと思いました)。以下に示す StdDec メソッドを含む StudentsMarks クラス:
public static double StdDev() throws IOException
{
String [][] marks = StudentMarks.StudentMarks();
double mean = 0, average = 0, stdDev = 0;
int row = 0;
for(row = 0; row < marks.length; row++)
{ //ROW,COL
double score1 = Double.parseDouble(marks[row][2]); //parsing the data from the array into a double
double score2 = Double.parseDouble(marks[row][3]);
double score3 = Double.parseDouble(marks[row][4]);
double score4 = Double.parseDouble(marks[row][5]);
average = score1*0.1 + score2*0.4 + score3*0.2 + score4*0.3;
mean = average/row;
stdDev = Math.sqrt(Math.pow(average - mean,2)/row);
}
return stdDev;
}