Java 中的随机数

 2022-09-08
原文地址:https://cloud.tencent.com/developer/article/2098974

大家好,又见面了,我是你们的朋友全栈君。

在Java中主要提供了两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。

1.Math.random()方法

这个方法默认生成大于等于0.0且小于1.0的double型随机数,即0<=Math.random()<1.0。

虽然Math.random()方法只可以产生0~1之间的double型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法产生任意范围的随机数,如:

(int)(Math.random()*n)—–>返回大于等于0且小于n的整数

m+(int)(Math.random()*n)—–>返回大于等于m且小于m+n(不包括m+n)的随机数

202209081945017501.png

使用Math类的random()方法也可以随机生成字符,可以使用如下代码生成a~z之间的字符:

(char)(‘a’+Math.random()*(‘z’-‘a’+1)); //加1是因为要取到z

202209081945032562.png

2.Random类

(1)除了Math类中的random()方法可以获取随机数之外,Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类。可以通过实例化一个Random对象创建一个随机数生成器。

Random r=new Random();

以这种方式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数将不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数。

(2)同时也可以在实例化Random类对象时,设置随机数生成器的种子。

Random r=new Random(seedValue);

在Random类中提供了获取各种数据类型随机数的方法,下面列举几个常用的方法:

            public int nextInt(): 返回一个随机整数
    		public int nextInt(int n): 返回大于等于0且小于n的随机整数
    		public long nextLong(): 返回一个随机长整型值
    		public boolean nextBoolean(): 返回一个随机布尔型值
    		public float nextFloat(): 返回一个随机浮点型值
    		public double nextDouble(): 返回一个随机双精度型值
    		public double nextGaussian(): 返回一个概率密度为高斯分布的双精度值

202209081945044213.png

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157003.html原文链接:https://javaforall.cn