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

首先要说的是:很多人分不清临界值是否取得到!

第一种办法,Math.random()

他的范围是0.0与1.0之间的伪随机数字,包括0不包括1(什么是伪随机?在本文章最下面有简单的介绍)。

 在这里我举个例子:生成一个[1,100]之间的随机数字。

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

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

但是...

我现在改变要求我需要一个范围为[0,100]的随机数,用简单的话来说就是包括0包括100

这时候就会发现使用第一种方法很难凑成既包括0又包括100的范围

这时候我们来引入:

第二种办法

//这里需要添加Random类
import java.util.Random;

//创建一个对象
Random df = new Random();

//引用nextInt()方法
int number = df.nextInt(101);

nextInt(int bound)返回伪随机的

均匀分布int值介于0(含)和 bound(不包括),参数bound 是上限。

这里的df.nextInt(101)的范围是[0,100] ,刚好满足我们的需求。

 

ps:

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

参考地址:https://baike.baidu.com/item/伪随机数/104358?fr=aladdin

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值