Java中生成随机数的方法

通过对java中如何生成随机数的学习,把学到的和自己的一些想法做一下记录和总结。

一、利用random()方法生成随机数

在Math类中,Java语言提供了一个random的方法,通过这个方法可以让系统产生随机数。不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的double型随机数。虽然其随机数产生的范围比较小,但是只要对这个方法进行一些灵活的处理,就可以获取任意范围的随机数。

如我们可以先通过random方法生成一个随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。然后再利用Int方法进行转换(它会去掉小数掉后面的数字,即只获取整数部分,不是四舍五入)。最后即可获取一个0到9的整数型随机数字。即对原有的random方法进行如下的变型:(int)(Math.Random()*10)即可。我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。如需要产生[0,n)范围内的随机数,则可改为(int)(Math.Random()*n)即可。此时应用程序就会产生一个大于等于0小于n之间的随机数。如将n设置为5,那么其就会产生一个0到5之间的整数型的随机数。

这样只适用于从0开始的区间范围,如果起始区间不为0,如区间[min,max],用上面提到的变型不足以得出,可用变型:

(int)(min+Math.random()*(max-min+1))

如min=1,max=5,则生成的是区间[1,5]的正整数。同时,对从0开始的区间同样有效。

二、通过Random类生成随机数

利用这个方法,必须创建一个对象,通过实例化一个Random对象来创建一个随机数的生成器

Random random = new Random()

它的nextInt(int n)方法可产生[0,n)区间内的整数,这个方法也只能够控制上限,而不能够控制下限。如random.nextInt(20),随机产生[0,20)之间整数。

同样,适用于产生任意范围的随机数的变型:

int s = random.nextInt(max-min+1) + min;

思路就是要产生X到Y的随机数,可先先产生的0到Y-X的随机数,然后加上X就是所求。

还有一种思路即用取模的办法也可行,实质差不多,用于区间起始不为0的情况,即为:

int s = random.nextInt(max) % (max - min + 1) + min;

可以将这个写成一个带参数的方法,只要输入需要生成随机数的最大值最小值,就可以让这个方法来生成指定范围的随机数,定义自己的工具库。

三、产生随机字符

可以运用随机方法来产生一些其他想要的东西,如随机产生字符其实也可以利用类似随机数的方法,如产生a~z之间的字符,可调整为(char)(‘a’+Math.random()*(‘z’-‘a’+1))即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值