900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Java生成指定范围的随机数

Java生成指定范围的随机数

时间:2019-02-07 10:26:10

相关推荐

Java生成指定范围的随机数

一、Java提供的API

在Java SE中,java.util.Random类中提供了产生随机数的API,如下图所示:

返回从随机数生成器序列中提取的,均匀分布在0(包含)和指定值,即参数bound(不包含)之间的一个int类型的伪随机数。

简而言之,就是返回[0,bound)区间中的一个int值

二、返回指定范围的随机数

Java SE中的API,没有提供可以直接指定一个具体范围的方法,因此,需要我们自己稍微转化一下代码逻辑。

假设你想要在范围[l,r]中产生随机数(0 <= l < r),我们可以将范围向左偏移l,产生的随机数之后在向右偏移l, 即[0, r - l] + l,它和在区间[l,r]上产生随机数是等价的。

现举例说明为什么在[0, r - l]之间产生随机数,等价于在[0, r - l + 1)之间产生随机数。这个问题Java提供的API是可以解决的,最后再加上向右的偏移l,原文题就解决了。

nextInt(r - l + 1) + l

例如,你想在范围[5, 21]之间产生随机数,只需这样:nextInt(21 - 5 + 1) + 5,方法nextInt()的返回值为[0,bound),对于本方法调用是[0,21 - 5 + 1),即[0, 17),其等价于[0,16]。最后加上l (l 为 5), [0, 16] + 5 等价于[5, 21]。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。