Radom类随机生成

Random类
Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机数计算时,随机算法的起源数字【参数】称为种子数seed,在种子数的基础上进行一定的变换,从而产生需要的随机数字创建随机对象new Random()构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象
new Random(long seed)构造方法可以通过制定一个种子数进行创建 boolean nextBoolean()方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率double nextDouble()方法的作用是生成一个随机的double值,数值介于[0,1.0)之间 int nextInt()该方法的作用是生成一个随机的int值,该值介于int的区间,也就是2e9之间int nextInt(int n)方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n 需要生成一个4位整数:
1000+r.nextInt(9000)
如果希望可以重现上次生成的随机数,可以设置一个随机种子值即可。只要这个参数不变,就可以重现上次生成的随机数-----伪随机数void setSeed(long seed)方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出的Random对象相同
例如 生成福彩的号码 04 05 14 17 19 23 27 可以取值是1-36的号码
package Test0228;
import java.util.Random;public class Test005 { public static void main(String[] args) { /
/需要生成1–36的随机数,不允许重复
int arr[] =new int[7];
Random x=new Random();
for (int i =0;i<7;i++) {
//生成一个值放入arr[]数组中,每次生成一个值必须进行存在性判断,如果已经存在则需要重新生成 while(true) {
int temp = x.nextInt(36)+1;
//加1原因是含左不含右
boolean bb = exists(arr, temp); if(bbfalse) {
arr[i]=temp;
break;
}
}
}
for(int i=0;i<arr.length;i++) {
if(arr[i]<10)
System.out.print(“0”+arr[i]+"\t");
else System.out.print(arr[i]+"\t");
}
} //判断数组中是否已经有指定的值 public static boolean exists(int arr[],int target) {
boolean res = false;
for(int i=0;i<arr.length;i++) {
int temp = arr[i];
if(target
temp) {
res=true;
break;
}
}
return res;
}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值