java生成任意整数随机数(任意指定范围)

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_40661990/article/details/89525756

Math.random()

jdk1.8文档描述:
在这里插入图片描述

1、求:范围为 [ 0 ,352324 ] 之间的随机数。(包括临界值)

(int)( Math.random () * ( 352324 +1) ) ;

简单解释下,Math.random()生成随机数的范围是 0 到 1 之间的 ,当然,不包括临界值,取不到1,可以取到0。所以,这里利用这个特性只需要让最大值+1就可以使范围扩大,最后使用显示的类型转换只保留整数的部分就好了。如果最小值不是 0 可以先进行变换就行了(如:最大值和最小值同时缩小)。

2、生成一个[1,100]之间的随机数字

number = (int)(Math.random()*100)+1

Math.random生成的是一个[0.0,1.0)之间的小数0.xxxxxx… 先将小数点向后移动2位,然后强制转换成int型,只保留整数位的值,这时候值的范围是[0,99],两个边界同时扩大一个单位的值+1,范围就变成了[1,100]。

3、生成一个[0,100]的随机数(既包括0又包括100的范围)

//这里需要添加Random类
import java.util.Random;
 
//创建一个对象
Random df = new Random();
 
//引用nextInt()方法
int number = df.nextInt(101);

//输出number
System.out.println(number);

nextInt(int bound)返回伪随机的
均匀分布int值介于0(含)和 bound(不包括),参数bound 是上限。
这里的df.nextInt(101)的范围是[0,100] ,刚好满足我们的需求。


伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。伪随机数可以用计算机大量生成,在模拟研究中为了提高模拟效率,一般采用伪随机数代替真正的随机数。模拟中使用的一般是循环周期极长并能通过随机数检验的伪随机数,以保证计算结果的随机性。

猜你喜欢

转载自blog.csdn.net/qq_40661990/article/details/89525756