我很努力地爲我的作業找到標準偏差,我做了所有其他事情,我只是在最後一點掙扎。我的作業問題簡而言之是: 我給出了一組學生的任務結果文本文件(必須是任意數字)。唯一給出的數據是學生姓名,球迷及其結果,你需要計算他們的平均成績和標準差。輸出應該是這樣的:查找2D陣列的標準偏差
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類此,我的主類欄目管理,一個學生類,其中包含與數組學生姓名和風扇(也不是我的問題確實相關,但我想我最好剛纔設置的場景),最後是StudentsMarks類,它包含了我StdDec方法如下顯示:
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;
}
不應平均和平均來計算整個數據集?你總是覆蓋以前計算的值! – isnot2bad
你是否應該爲整個考試中的每個學生計算平均值和stddev,還是爲每個學生的考試計算平均值和stddev? – Joni
@ isnot2bad是的,我知道它每次都會覆蓋它。我不知道如何計算平均值。對於我只需要打印它們的另一部分來說,這很好,但這一部分我正因爲這個確切原因而苦苦掙扎。 – JavaRookie