我想找到数组总数的平均差异。
我的数组结构如下(从数据库中提取):
day
,1
,2
,3
,4
所以你可以看到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列。
计算'平均增加/减少',即:
我不确定如何将其实现为Java!任何帮助将不胜感激。
如果我能提供更多信息,请告诉我。
非常感谢。
答案 0 :(得分: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]
}
}
答案 1 :(得分:1)
由于我们知道数据库中项目的位置,因此以下内容可能有效:
/*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