Random随机数的用法

举报
多米诺的古牌 发表于 2022/08/28 21:13:42 2022/08/28
【摘要】 在Java编程过程中,我们常常会需要实现随机数,那么如果需要生成一个指定范围之内的随机数字要怎么来实现呢?答案是有两种实现的方法:一种是调用Math类的random() 方法,一种是使用Random随机类。

1.如何生成随机数

在Java编程过程中,我们常常会需要实现随机数,那么如果需要生成一个指定范围之内的随机数字要怎么来实现呢?答案是有两种实现的方法:一种是调用Math类的random() 方法,一种是使用Random随机类。

2.Math 类

Math 类是在java.lang包下的类,它是数学相关的工具类,里面提供了大量的静态方法,可以直接进行调用用来完成与数学运算相关的操作。

如果要通过Math类来实现随机数的生成的,需要借助random()方法来的进行实现,random()方法没有参数,它会默认返回大于等于 0.0小于1.0 double类型随机数,即 0<=随机数<1.0。对 random() 方法返回的数字进行乘法就可以实现产生任意范围随机数的功能。

比如要生产[0,100),即生成大于等于0,小于100的随机整数:

int i = (int) (Math.random() * 100);
2.Random类

Random类是java.util包下的类,它提供了丰富的随机数生成方法(顾名思义嘛,名字就是随机数,当然专门进行随机数操作的),可以产生boolean、int、long、float、byte数组以及double类型的随机数,这是它与 random() 方法最大的不同之处,因为random()只能产生double类型的大于等于0小于1的随机数。

Random类两个构造方法:

一个是无参的Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造 Random 对象。

一个是有参的Random(long seed),random里其实是一个数列,这个数列每一位的数字接近随机分布,seed是种子数,设置用于随机数生成器的初始化值。

因为Random类提供的所有方法生成的随机数字都是均匀分布的,所以说区间内部的数字生成的概率都是均等的。

下面是Random类生成int、double、long、boolean、float类型的随机数常用方法:

Random r = new Random();
 double d1 = r.nextDouble(); // 生成[0,1.0]区间的小数
 double d2 = r.nextDouble() * 10; // 生成[0,10.0]区间的小数
 int i1 = r.nextInt(10); // 生成[0,10]区间的整数
 int i2 = r.nextInt(10) - 3; // 生成[-1,9)区间的整数
 long l1 = r.nextLong(); // 生成一个随机长整型值
 boolean b1 = r.nextBoolean(); // 生成一个随机布尔型值
 float f1 = r.nextFloat(); // 生成一个随机浮点型值
以上就是随机数的简单应用和实现方法的小知识的汇总。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。