public static int random(int max) {
max++;
int r = (int) (Math.random() * (1 + max) * max / 2);
int sum = 0;
for (int i = 0; i < max; i++) {
sum += max - i;
if (r < sum)
return i;
}
return -1;
}
public static void main(String[] args) {
for (int i = 0; i < 100; i++)
System.out.print("/t" + random(9));//0-9共10个数,0概率最大,9概率最小,作为数组下标就可以完成要求了。
}