如题
例如:指定范围是20,那就生成一个个数为20的随机数列,数列中的数字范围是1~20,而且数字不能重复出现。
哪位大哥知道麻烦告诉一下小弟,因为是初学java,还是菜鸟一个,谢谢各位!
最好贴出具体代码
------解决方案--------------------
Random rnd=new Random;
rnd.nextInt(20);
核心代码就在上面,至于你要生成20个数,那就创建一个长20的数组,用多个循环嵌套检查生成的数是不是和前面的元素有相同的,有就重新做,没有就赋值
------解决方案--------------------
1.random ra=new random ();
ra.nextInt(20)+1;
2.Math.random()*20
用循环去掉重复
------解决方案--------------------
生产生顺序的序列,再随机进行交换
- Java code
import java.util.Random;public class Test { public static void main(String args[]) { int[] n = getRandomSeries(20); for(int a : n) { System.out.print(a + " "); } } public static int[] getRandomSeries(int size) { int[] series = new int[size]; for(int i = 0; i < size; i++) { series[i] = i + 1; } Random ran = new Random(); for(int i = 0, k = size * 2; i < k; i++) { int index1 = ran.nextInt(size); int tmp = series[index1]; int index2 = ran.nextInt(size); series[index1] = series[index2]; series[index2] = tmp; } return series; }}
------解决方案--------------------
- Java code
List<Integer> list = new ArrayList<Integer>(); Random rnd = new Random(); for (int i = 0; i < 20; i++) { int j = rnd.nextInt(21); if (!list.contains(j) && j != 0) { list.add(j); } else { --i; } } Integer[] ii = list.toArray(new Integer[20]); Arrays.sort(ii); for (Integer i : ii) { System.out.println(i); }