有这样一个问题 ,例如有一个【0,50】的数组,数组下标从0开始一直到49,数组的值和数组下标值一样,我怎么样在最短的时间里面找出我要的5个随机数, 例如 :1,5,9,7,42 。重要的一点是要保持随即数要均衡。
//存在数组 int[] input = {0,1,2,3,4,...,49}
//随即一个 属于[0,49] 的整数 i
//因为你要5个均衡随机数,所以设置平均步长 step = input.length / 5 = 10
//循环五次,结果为 result[]
for(int j = 0, j < 5, j++){
result[j] = input [ i % 50 ];
i = i + step;
}
//其实我也不太明白你的问题,题意我是猜的
分段取随机数,如【0,50】取5个随机数,均分成5段,每段取一个,肯定均衡。。。 :x
不明白什么意思,a[random]=random,怎么还要去找
数组的下标取随机数就好了.
[code="java"] static final Random r = new Random();
public static int[] randGet(int[] arr) {
int[] b = new int[5];
for (int i = 0; i < 5; i++) {
b[i] = arr[r.nextInt(arr.length)];
}
return b;
}[/code]
问题好像没有描述好,不知道这样符合你的要求吗
不知道你问的是什么问题,我觉得这个随机数就可以解决了。如果要均衡那可以获取后删除某个元素!!