2012-04-29 37 views
0

我想要查找數組總數的平均差異。Java算法查詢

我的陣列結構如下(從數據庫中抽取):

day1234

所以,你可以看到5個陣列它是如何從數據庫中抽取。

現在例如,Java的算法我需要的是如下:

要添加每個1,2,3,4值了,然後循環至次日(如果有的話),重複同樣的補充。最後,計算每天總計之間的「平均差異」。

因此,例如,我已經做了一些示例數據來嘗試使它更清晰!

1 (Mon)  135 90 105 150 
2 (Tues) 143 86 117 163 
3 (Wed)  129 100 140 158 

那麼該算法需要做的是:

135 + 90 + 105 + 150 = 500,

143 + 86 + 117 + 163 = 509,

129+ 100 + 140 + 158 = 527

但唯一的問題是,第1列是它自己的數組和第2,3,4列之前的列。

計算的平均增加/減少「,這將是:

https://math.stackexchange.com/questions/16554/what-is-average-increase-percentage-and-how-to-calculate-it

我不能確定如何實現它爲Java!任何幫助,將不勝感激。

如果我可以提供更多的信息,請讓我知道。

非常感謝。

+1

這個問題的哪一部分,特別是你遇到了麻煩? –

+0

整個算法,我已經嘗試過通過天數組循環,使用'指針'與1,2,3,4關聯,但沒有成功。任何幫助將非常感激。 – Ben

+1

請修改您的問題以包括您目前爲止所擁有的內容,以及它如何不起作用。 –

回答

2

因爲我們知道在數據庫中的項目的位置,以下可能的工作:

/*Psudeocode: 
ArrayList<Integer> firstCol = //get first column 
ArrayList<Integer> secondCol = //get second column 
.... 
ArrayList<Integer> nCol = //get n column 
*/ 
ArrayList<Integer> values = new ArrayList<Integer>(); 
int currentRow; 
for(int i=0;i<n;i++) 
{ 
    currentRow = 0; 
    currentRow += firstCol.get(i); 
    currentRow += secondCol.get(i); 
    //etc, etc... 
    values.add(currentRow); 
} 
//At this point, values contains all the sums of the different rows. 
//To calculate the average percent change: 
//PR= (((Vpresent - Vpast)/Vpast) x 100)/N 
for(int i=0;i<values.size() -1;i++) 
{ 
    System.out.println(((values.get(i+1) - values.get(i)) * 100)/(i+1)) 
} 

我希望這有助於。 Help with Average Percent Change

+0

嗨@SomeKittens,非常感謝您的回覆。這現在正確地打印出1個陣列內的數據。我可以看到你要去哪裏。 在「這裏的平均增長百分比」一節中,您是否可以闡明我如何找到4個值中的每一個的平均差異。 – Ben

+0

我已經添加了公式以及Java實現。 – SomeKittens

2

您是否首先爲了能夠訪問所有元素而到達此階段? (?如果我理解正確你的問題)

//first for loop loops through the number of days 
for (int i = 0; i < day.length; i++) 
{ //second for loop loops through all integers in Ith day 
    for (int j = 0; j < day[i].length; j++) 
    { 
     print day[i][j] 
    } 
}