Java中的随机数Random

网友投稿 290 2022-08-19


Java中的随机数Random

一个用于生成随机数的类

具体用法:

//创建随机数对象

Random random = new Random();

//随机产生一个int类型取值范围内的数字。

int num1 = random.nextInt();

System.out.println(num1);

//产生一个[0-100]之间的随机数

int num2 = random.nextInt(101);

System.out.println(num2);//不包括101

写一个不含重复数字的随机数组

第一种:

int[] num = new int[5];

boolean flag = true;

Random random = new Random();

for (int i = 0; i < num.length; i++) {

int a = random.nextInt(5);

for (int j = i - 1; j >= 0; j--) {//当i == 0 的时候这一步不执行

if (a == num[j]) {

flag = false;

}

}

if (flag) {

num[i] = a;

} else {

i--;

flag = true;

}

}

System.out.println(Arrays.toString(num));

第一种方法的改进:

public static void main(String[] args) {

int[] num = new int[5];

Random random = new Random();

int index = 0;

while (index < num.length) {

int a = random.nextInt(5);

if (contains(num, index, a)) { //把判断有没有变成了一个方法

num[index++]qrVPd = a;

}

}

System.out.println(Arrays.toString(num));

}

public static boolean contains(int[] a, int index, int temp) {

for (int i = index - 1; i >= 0; i--) {

if (temp == a[i]) {

return falhttp://se;

}

}

return true;

}

第二种:

不推荐这种方法,虽然使用了Arrays自带的方法 ,但是这个方法的除最后一个元素以外的元素都是排好序的

这种随机有点不严谨

public static void main(String[] args) {

int[] a = new int[5];

Random random = newhttp:// Random();

int index = -1;

while(index < a.length -1){

int b = random.nextInt(5);

if(contains(a,b,index)){

a[++index] = b;

}

}

System.out.println(Arrays.toString(a));

}

public static boolean contains(int[] a , int b , int index){

if (index < 0){

return true;

}

Arrays.sort(a,0,index + 1);//下标为[0,index+1)的数组排序 不包含index+1

return Arrays.binarySearch(a,0,index + 1,b) < 0;//二分法查找下标为[0,index+1)范围内是否包含b

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java基于Dijkstra算法实现校园导游程序
下一篇:SpringBoot中HttpSessionListener的简单使用方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~