Java生成随机数(random()和Random类)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Java 中要生成一个指定范围之内的随机数字有两种方法一种是调用 Math 类的 random() 方法一种是使用 Random 类。

Random 类提供了丰富的随机数生成方法可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。

Random 类位于 java.util 包中该类常用的有如下两个构造方法。

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

  • Random(long seed)使用单个 long 类型的参数创建一个新的随机数生成器。

Random 类提供的所有方法生成的随机数字都是均匀分布的也就是说区间内部的数字生成的概率是均等的在表 1 中列出了 Random 类中常用的方法。

表 1 Random 类的常用方法

方法

说明

boolean nextBoolean()

生成一个随机的 boolean 值生成 true 和 false 的值概率相等

double nextDouble()

生成一个随机的 double 值数值介于 [0,1.0)含 0 而不包含 1.0

int nextlnt()

生成一个随机的 int 值该值介于 int 的区间也就是 -231~231-1。如果

需要生成指定区间的 int 值则需要进行一定的数学变换

int nextlnt(int n)

生成一个随机的 int 值该值介于 [0,n)包含 0 而不包含 n。如果想生成

指定区间的 int 值也需要进行一定的数学变换

void setSeed(long seed)

重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象

和相同种子数使用 new 关键字创建出的 Random 对象相同

long nextLong()

返回一个随机长整型数字

boolean nextBoolean()

返回一个随机布尔型值

float nextFloat()

返回一个随机浮点型数字

double nextDouble()

返回一个随机双精度值

例 1

下面编写一个 Java 程序演示如何使用 Random 类提供的方法来生成随机数。具体代码如下:本实例每次运行时结果都不相同这就实现了随机产生数据的功能。该程序的运行结果如下

生成的[0,1.0]区间的小数是0.8773165855918825

生成的[0,7.0]区间的小数是6.407083074782282

生成的[0,10]区间的整数是5

生成的[-3,15]区间的整数是4

生成一个随机长整型值-8462847591661221914

生成一个随机布尔型值false

生成一个随机浮点型值0.6397003

下期七星彩开奖号码预测0227168

例 2

Math 类的 random() 方法没有参数它默认会返回大于等于 0.0、小于 1.0 的 double 类型随机数即 0<=随机数<1.0。对 random() 方法返回的数字稍加处理即可实现产生任意范围随机数的功能。

下面使用 random() 方法实现随机生成一个 2~100 偶数的功能。具体代码如下由于 m+(int)(Math.random()*n) 语句可以获取 m~m+n 的随机数所以 2+(int)(Math. random()*(102-2)) 表达式可以求出 2~100 的随机数。在产生这个区间的随机数后还需要判断是否为偶数这里使用了对 2 取余数如果余数不是零说明随机数是奇数此时将随机数加 1 后再输出。

该程序的运行结果如下

随机数是20

需要源码数据库的评论区“888”领取。

https://www.bilibili.com/video/BV1tK411y7wu/?vd_source=96bd6c0a2bc667ee6713079257ccf5ad

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java