java需要帮助改变模方程
我目前需要生成一个由以下元素组成的数组:
-0.5, 0, 0.5, 0, -0.5, 0, 0.5, 0...
等等。这是我当前的代码:
// Sequence: -0.5, 0, 0.5, 0, -0.5, 0, 0.5...
public static double[] generateI(int n) {
if (n < 0) {
return null;
} else if (n == 0) {
return new double[0];
}
double[] arr = new double[n];
for (int i = 0; i < n; i++) {
arr[i] = ((0.5 * i) % 2) - 0.5; \\need help here.
}
return arr;
}
但是,我的输出是:
[-0.5,0.0,0.5,1.0,-0.5,0.0,0.5,1.0,-0.5,0.0,0.5,1.0]
因此,我的数学方程式是错误的
(请注意,我已经尝试使用-Math.cos(i * Math.PI/2)/2
方程,尽管这是一个有效的解决方案,但我的任务是在一行代码中使用模函数。)强>
另一个顺序(对于感兴趣的人)是:
-0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5...
感谢您的帮助
# 1 楼答案
我认为有更简单的方法
# 2 楼答案
有3个值,因此模为3。然后想想0,1,2应该如何映射到-0.5,0,0.5
尼斯是Arrays班
另一个顺序我留给你自己的努力
# 3 楼答案
使用
otherSequence
标志更改要激活的两种模式中的哪一种对于您提到的第二种模式,您需要取
i
和4
的mod(返回[0, 1, 2, 3]
),然后在i
和4
之间添加整数除法的结果,以便使序列继续到接下来的4个数字(例如i = 6
(6 / 4 = 1 -> [1, 2, 3, 4]
)输出: