Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的增量_Java_Algorithm_Math - Fatal编程技术网

Java中的增量

Java中的增量,java,algorithm,math,Java,Algorithm,Math,我试图给数组一些值 到目前为止,我有以下代码 double[] weeks = new double[10]; for(int i = 0; i < weeks.length; i++) { weeks[0]= 2; weeks[9]= 26; } 这里是数学有用的地方: weeks[0]= 2; weeks[9]= 26; 可视为 f(0)=2 f(9)=26 现在,如果你想要一个线性关系,那么fx的形式是fx=a*x+b。你已经有了

我试图给数组一些值

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

double[] weeks = new double[10];

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

这里是数学有用的地方:

weeks[0]= 2;
weeks[9]= 26;
可视为

f(0)=2
f(9)=26
现在,如果你想要一个线性关系,那么fx的形式是fx=a*x+b。你已经有了上面的两个数据点,你只需要解a和b。提示:您可以简单地推断b应该是2。

第1周或索引0需要是2,第10周或索引9需要是26

如果我理解您的意思,您希望以大约相等的间隔使用2到26的值填充数组week。你可以用这样的东西

int min = 2;
int max = 26;
int count = 10;
double inc = (max - min) / (double) (count - 1);
int[] weeks = new int[count];
double init = min;
for (int i = 0; i < count; i++) {
    weeks[i] = (int) Math.round(init);
    init += inc;
}
System.out.println(Arrays.toString(weeks));
此代码输出


[2.0,4.6666666666666,7.333333333332,9.999999999998,12.66666666666666664,15.33333333333,17.999999999999999999996,20.6666666666664,23.333333333333332,26.0]

我也不太确定你想要实现什么,但我可能知道你的问题是什么。如果只想增加for循环中的变量i,只需编写:

for(float i=0;i < weeks.length;i+=2.6) {
    //Do your Code here
}
但我不认为这是你的问题,所以请准确地给出一个例子,并在注释中写下你希望代码做什么

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 1.4.666666666666666 2.7.333333333333333 3.10 4.12.666666666666666 5.15.333333333333332 6.18 7.20.666666666666664 8.23.333333333333332 9; 26.0


现在还不清楚你想要实现什么,以及这与你所包含的代码有什么关系。在我的数组中,我试图以增量增加。我想基本上弄清楚如何将2.6加到前面的索引之和上,或者双d=2,d<26;d+=2.6?你能再详细说明一下吗?d代表什么?它是一个变量。i表示forint i=0中的值;i<周长;i++?为什么将weeks更改为int[]?这基本上就是我要实现的。我必须使用最小值和最大值吗?我正试图用尽可能少的代码来完成这项工作。@马特先生,上面所说的一切都是在计算,你当然可以随心所欲地去做,包括使用魔法值,而不是最小值和最大值。
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));
    }
}
for(float i=0;i < weeks.length;i+=2.6) {
    //Do your Code here
}
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]);
        }
    }
}