Java数组建议

Java数组建议,java,arrays,methods,runtime,Java,Arrays,Methods,Runtime,我在做练习题,我被卡住了。问题是 给定一个n个数组(称为双数),考虑计算问题。 前i个数的平均值,对于i,范围从0到n-1。即,计算 长度为n的数组b,其中 b[i]=a[0]+a[1]..+a[i]/(i+1) 对于0要开始,请创建一个函数以获取n个给定数字的平均值(maxNum) public int-getAvgForNumbers(int-maxNum){ 整数和=0; 对于(int k=1;k如果我得到正确的结果,你必须生成一个数组B,其中B[I]是输入数组的前I个元素的平均值 如果这

我在做练习题,我被卡住了。问题是

给定一个n个数组(称为双数),考虑计算问题。 前i个数的平均值,对于
i
,范围从
0
n-1
。即,计算 长度为
n
的数组b,其中
b[i]=a[0]+a[1]..+a[i]/(i+1)

对于
0要开始,请创建一个函数以获取n个给定数字的平均值(
maxNum

public int-getAvgForNumbers(int-maxNum){
整数和=0;

对于(int k=1;k如果我得到正确的结果,你必须生成一个数组B,其中B[I]是输入数组的前I个元素的平均值

如果这是一个问题,你可以做一个循环,对a[i]+B[i-1]求和,然后对B[i-1]/i求和

因此,如果A是输入数组,B是输出:

B[0] = A[0]
for (int i = 1; i < n; i ++) {
    B[i] = A[i] + B[i-1];
    B[i-1] /= i;
}
B[n-1] /= n;
B[0]=A[0]
对于(int i=1;i
这是O(n),就复杂度而言是最优的(因为问题是计算n个数的平均值是T(n),即复杂度小于O(n)时无法解决)

此外,该常数非常低,因为每个循环只有几个指令。这应该可以让您保持在5秒以下

啊,我忘记了,A的生成在5秒分析之外(它是输入)


关于

你实际上并不是在求和值-你在循环的每次迭代中声明一个新的局部变量,并将一个现有的值加倍…那么
数组
的值是什么?@JonSkeet基本上我要做的是创建一个程序,使数组的值不固定,并在5秒钟后找到平均值我不太确定如何初始化一个起始值来继续运行。数组值是在5秒后测试多少次。它没有真正的意义,只是一个测试来看看。我不知道在5秒后找到平均值有什么意义。它只需要在5秒前完成。提示:尝试declaring循环外的总数,从零开始,求和数值。然后想想平均值是多少…这里很难给出答案-在你尝试解决这个赋值之前,你应该后退一步,试着掌握数组和循环的概念。例如,你想说
double[]array=new double[a-lenghth];
制作与“a”大小相同的数组。很抱歉,我忘记了数组B的最后一个元素(最后一个平均值)的除法。我刚刚添加了它
public int getAvgForNumbers(int maxNum){
int sum = 0;

for(int k=1; k<=maxNum; k++){
     sum = sum + k;
  }

return sum/maxNum;
}
B[0] = A[0]
for (int i = 1; i < n; i ++) {
    B[i] = A[i] + B[i-1];
    B[i-1] /= i;
}
B[n-1] /= n;