Java算法查询

时间:2012-04-29 20:00:34

标签: java math

我想找到数组总数的平均差异。

我的数组结构如下(从数据库中提取):

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!任何帮助将不胜感激。

如果我能提供更多信息,请告诉我。

非常感谢。

2 个答案:

答案 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