我的Java学习之路(第十八天)------ Math.random的使用

(Eg:如果只需要一个答案,直接翻到最下面即可)
首先Math.random()是令系统随机生成一个大于等于 0.0 且小于 1.0 (前开后闭)的伪随机 double 值,为方便本篇叙述将其表示为:
Math.random:[0.0,1.0)

下面以整数(int)为例子:

通常,如果我们需要获取从[x,y)范围内的伪随机数,有下面这样的公式:

Math.random()*(y-x)+x

这很好理解是不是,那如果我们需要闭区间的呢,也就是需要获取从[x,y]范围内的伪随机整数,其实也很简单,只需要:

(int)Math.random()*(y-x+1)+x

为了方便理解,我们取x=10,y=35;为例子
首先
Math.random:[0.0,1.0)
Math.random()(35-10):[0.0,25.0)
Math.random()
(35-10+1):[0.0,26.0)
所以
Math.random()(35-10+1)+10:[10.0,36.0)
由于i墙砖为int会丢失精度,也就是舍去小数部分,因此得到
(int)Math.random()
(35-10+1)+10:[10,35](值为整数)

总结:

  • 若需要[x,y)范围的伪随机数
Math.random()*(y-x)+x
  • 若需要[x,y]范围的伪随机整数
(int)Math.random()*(y-x+1)+x
发布了50 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/104146370