Java 从周期序列0,1,2,3,2,1,0,1中获取值的最简单方法是什么。。。按索引?
例如,我有一个周期序列,从0开始,然后是1,2,直到3,然后开始下降到2,1,然后是0,然后又是1。让函数为f(min,max,x),其中x是索引,因此:Java 从周期序列0,1,2,3,2,1,0,1中获取值的最简单方法是什么。。。按索引?,java,algorithm,math,language-agnostic,Java,Algorithm,Math,Language Agnostic,例如,我有一个周期序列,从0开始,然后是1,2,直到3,然后开始下降到2,1,然后是0,然后又是1。让函数为f(min,max,x),其中x是索引,因此: f(0,3,0)=0 f(0,3,1)=1 f(0,3,2)=2 f(0,3,3)=3 f(0,3,4)=2 . . . f(0,3,9)=3 我试过这样的方法: public static int f(int min,int max,int x){ int r=min; int increment=1; for(i
f(0,3,0)=0
f(0,3,1)=1
f(0,3,2)=2
f(0,3,3)=3
f(0,3,4)=2
.
.
.
f(0,3,9)=3
我试过这样的方法:
public static int f(int min,int max,int x){
int r=min;
int increment=1;
for(int i=0;i<x;i++){
if(r==max){
increment=-1;
}else if(r==min){
increment=1;
}
r+=increment;
}
return r;
}
publicstaticintf(intmin,intmax,intx){
int r=min;
int增量=1;
对于(int i=0;iint index=x%(2*(max-min));//注意周期性
int-val=0;
if(indexint index=x%(2*(max-min));//注意周期性
int-val=0;
if(indexint index=x%(2*(max-min));//注意周期性
int-val=0;
if(indexint index=x%(2*(max-min));//注意周期性
int-val=0;
如果(索引)
检查一下
检查一下
检查一下
将其作为显式公式检查:
// note this doesn't work for negative values as expected
public static int f(int min,int max,int x) {
return max-abs(x%((max-min)*2)-max+min)
}
// just add abs(x) to make it work for negative numbers
public static int f(int min,int max,int x) {
return max-abs(abs(x)%((max-min)*2)-max+min)
}
作为显式公式的解决方案:
// note this doesn't work for negative values as expected
public static int f(int min,int max,int x) {
return max-abs(x%((max-min)*2)-max+min)
}
// just add abs(x) to make it work for negative numbers
public static int f(int min,int max,int x) {
return max-abs(abs(x)%((max-min)*2)-max+min)
}
作为显式公式的解决方案:
// note this doesn't work for negative values as expected
public static int f(int min,int max,int x) {
return max-abs(x%((max-min)*2)-max+min)
}
// just add abs(x) to make it work for negative numbers
public static int f(int min,int max,int x) {
return max-abs(abs(x)%((max-min)*2)-max+min)
}
作为显式公式的解决方案:
// note this doesn't work for negative values as expected
public static int f(int min,int max,int x) {
return max-abs(x%((max-min)*2)-max+min)
}
// just add abs(x) to make it work for negative numbers
public static int f(int min,int max,int x) {
return max-abs(abs(x)%((max-min)*2)-max+min)
}
@Teepeemm是的,错过了,修正了!@Teepeemm是的,错过了,修正了!@Teepeemm是的,错过了,修正了!@Teepeemm是的,错过了,修正了!