Java增量

时间:2016-01-09 17:43:45

标签: java algorithm math

我正在尝试为数组提供一些值。

到目前为止,我有以下代码。

double[] weeks = new double[10];

for(int i = 0; i < weeks.length; i++) {               
    weeks[0]= 2;
    weeks[9]= 26;
}

第1周(或week[0])需要为2,第10周(或week[9])需要为26。

我正在尝试识别一种算法,该算法可用于自动地在2到26之间平均递增数组的值。由于26 - 2 = 24并且在week[0]之后要填充9个值,我已经确定增量应为8/32.6 recurring。例如,值应为以下值。

2
4.6666666666
7.3333333333
...
23.333333333
26

5 个答案:

答案 0 :(得分:0)

这里有数学有用的地方:

weeks[0]= 2;
weeks[9]= 26;

可以看作是

f(0)=2
f(9)=26

现在,如果您想要线性关系,那么f(x)的格式为f(x)=a*x+b。您已经拥有上述两个数据点,您只需要解决ab。提示:你可以简单地推断出b应该是2。

答案 1 :(得分:0)

第1周(或指数0)需要为2,第10周(或指数9)需要为26

如果我了解您,您希望以大约相等的间隔使用MealnovaRefeicao的值填充数组week。你可以使用类似的东西,

2

从2到26输出(按要求)

26

答案 2 :(得分:0)

import java.util.Arrays;

public class Test
{
    public static void main(String[] args)
    {
        double[] weeks = new double[10];   
        int [] intList = new int[10];
        double increment = 2.666666666666666;
        int sum=0;
        double average=0;
        weeks[0]= 2;
        for(int i = 1; i < weeks.length; i++) {
            weeks[i]= weeks[i-1]+increment;
        }

        System.out.println(Arrays.toString(weeks));
    }
}

此代码输出

[2.0, 4.666666666666666, 7.333333333333332, 9.999999999999998, 12.666666666666664, 15.33333333333333, 17.999999999999996, 20.666666666666664, 23.333333333333332, 26.0]

答案 3 :(得分:0)

public class SolutionClass {

    public static void main(String[] args) {
        double[] weeks = new double[10];   
        int [] intList = new int[10];
        int sum = 0;
        weeks[0] = 2;
        weeks[9] = 26;
        double average = (weeks[weeks.length - 1]-weeks[0]) / (weeks.length - 1);

        for (int i = 1; i < weeks.length - 1; i++) {               
            weeks[i] = weeks[0] + i * average;
        }
        for (int i = 0; i < weeks.length; i++) {               
            System.out.println(i + "; " + weeks[i]);
        }
    }
}

输出:

  

0; 2.0
  1; 4.666666666666666
  2; 7.333333333333333
  3; 10.0
  4; 12.666666666666666
  5; 15.333333333333332
  6; 18.0
  7; 20.666666666666664
  8; 23.333333333333332
  9; 26.0

答案 4 :(得分:-1)

我也不太确定你想要达到的目标,但我可能会遇到你的问题。如果您只想在for循环中增加变量i,只需写:

for(float i=0;i < weeks.length;i+=2.6) {
    //Do your Code here
}

但我不认为这是你的问题,所以请准确一点,举一个例子并在评论中写下你希望代码做的事情。