private static int anyRandom(int n){
int max = n+1;//共n+1个数字,从0开始
int bigend = ((1+max)*max)/2;//大区间的上限(1+2+3+...+max)
int x = (int)(Math.random()%bigend);
int sum = 0;//表示了各区间的上限
for(int i = 0;i <max;i++){
sum+=(max - i);//sum每次增长的长度为各个小区间的跨度
if(sum>x){
return i;
}
}
int max = n+1;//共n+1个数字,从0开始
int bigend = ((1+max)*max)/2;//大区间的上限(1+2+3+...+max)
int x = (int)(Math.random()%bigend);
int sum = 0;//表示了各区间的上限
for(int i = 0;i <max;i++){
sum+=(max - i);//sum每次增长的长度为各个小区间的跨度
if(sum>x){
return i;
}
}