Java中的随机数Random
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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++] = 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 false;
}
}
return true;
}
第⼆种:
不推荐这种⽅法,虽然使⽤了Arrays⾃带的⽅法,但是这个⽅法的除最后⼀个元素以外的元素都是排好序的这种随机有点不严谨
public static void main(String[] args) {
int[] a = new int[5];
Random random = new 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
}
到此这篇关于Java中的随机数Random的⽂章就介绍到这了,更多相关随机数Random内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。