Java 如何取随机数(Random)?

263 篇文章 1 订阅
12 篇文章 0 订阅

两种方法:
Math.random() 返回0.0~1.0的double数
创建一个Random() Random ran=new Random();

Math.random()是令系统随机选[0.0, 1.0) 的伪随机 double 值
虽然是伪随机 但是我们就默认为是unifom生成的真实随机数。

Math.random()详细用法:

所以 如果我们想在[0, 100]中随机产生整数
(int)(Math.random()*101)
这是因为类型转换中(int)会使得double向下取整,而且Math.random()*100中 100也是取不到的。

我们想在[1, 100]中随机产生整数的话
(int)(Math.random()*100 + 1)

如果我们想在[1, 100)中随机产生数的话
Math.random()*99 + 1就可以 Java自动向精度比较高的方向转变。

如果我们想在[0, 100]中产生随机数的话
怎么办呢?

Random()对象的详细用法:

Random ran=new Random(seedValue);
 
Random类中还提供各种类型随机数的方法:
nextInt():返回一个随机整数(int) //在整个整数区间里面取
nextInt(int n):返回大于等于0、小于n的随机整数(int) 
nextLong():返回一个随机长整型值(long)
nextBoolean():返回一个随机布尔型值(boolean)
nextFloat():返回一个随机浮点型值(float)
nextDouble():返回一个随机双精度型值(double)
nextGaussian():概率密度为高斯分布的双精度值(double)

get the integer within the range of [minX, maxX];
int x = randX.nextInt(maxX - minX + 1) + minX; //就是说nextInt里面取范围,这个范围就是我们想要的那个区间的长度,然后对这个区间进行平移,使得起点对齐即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值