Java 随机数的生成 学习笔记

来源:互联网 发布:ae2018cc破解版mac 编辑:程序博客网 时间:2024/06/07 17:36

java中有一方法可生成随机数,Math.random(),但是其取值范围为[0,1)

需求1:如果想生成[0,20]之间的随机数,该怎么办呢?

思路:先让 [0,1)*21,然后做取整操作可得到[0 ,20]

需求2:如果想生成[30,50]之间的随机数,该怎么办呢?

思路:[0 ,20] + 30 ==>[30, 50]

需求3:如果想生成[m,n]之间的随机数,该怎么办呢?

思路:[0, 1) * ? ==> [0, ?) + m ==> [m, ?+m) 取整 ==> [m, ?+m-1)
           解得:? = n + m - 1

           所以:(int)(num * (n - m + 1) + m)==>[m,n]