/**
* 获得0--n之内的不等概率随机整数,0概率最大,1次之,以此递减,n最小
* @param n
* @return
*/
private static int getAnyRandInt(int n){
int max = n+1;
int bigend = ((1+max)*max)/2;
Random rd = new Random();
int x = Math.abs(rd.nextInt()%bigend);
int sum = 0;
for(int i = 0; i<max; i++){
sum += (max - i);
if(sum>x){
return i;
}
}
return -1;
}
/**
* 获得0--max之内的等概率随机整数
* @param max
* @return
*/
private static int getRandInt(int max){
Random rd = new Random();
return Math.abs(rd.nextInt()%max);
}
java概率
最新推荐文章于 2024-04-30 17:01:13 发布