1. java获取随机数
很多朋友都想知道java怎么获取随机数?下面就一起来了解一下吧~
Java中的随机数的有三种产生方式:
(01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
(02). 通过Math.random()返回一个0到1之间的double值。
(03). 通过Random类来产生一个随机数。
第1种
通过System.currentTimeMillis()来获取随机数。实际上是获取当前时间毫秒数,它是long类型。使用方法如下:
final long l = System.currentTimeMillis();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
final long l = System.currentTimeMillis();final int i = (int)( l % 100 );
第2种
通过Math.random()来获取随机数。实际上,它返回的是0(包含)到1(不包含)之间的double值。使用方法如下:
final double d = Math.random();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
final double d = Math.random();final int i = (int)(d*100);
第3种
通过Random类来获取随机数。
使用方法如下:
(01) 创建Random对象。有两种方法可以创建Random对象,如下:
Random random = new Random();//默认构造方法Random random = new Random(1000);//指定种子数字
(02) 通过Random对象获取随机数。Random支持的随机值类型包括:boolean, byte, int, long, float, double。
比如,获取[0, 100)之间的int整数。方法如下: int i2 = random.nextInt(100);
2. java如何产生1-10随机数
java代码方法一如下:
int random=(int)(Math.random()*10+1)
java代码方法二如下:
package bdqn_Empy;
import java.util.Random;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=0;
Random b=new Random();
a=b.nextInt(101);
System.out.println(a);
}
}
可以先通过 random方法生成一个随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。
然后再利用nt方法进行转换它会去掉小数掉后面的数字即只获取整数部分,不是四舍五入)。最后即可获取一个0到9的整数型随机数字。其实现方法很简单,就是对原有的 grandom方法按照如下的格式进行变型:(int( Math. Random0*10)即可。
其实我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。至需要将这个10换成n即可,如改为( int(Math. Random0n)。此时应用程序就会产生一个大于等于0小与n之间的随机数。
如将n设置为5,那么其就会产生一个0到5之间的整数型的随机数。如果将这个写成一个带参数的方法,那么只要用户输入需要生成随机数的最大值,就可以让这个方法来生成制定范围的随机数。
3. java中如何以不同概率产生随机数1-30
Random rm = new Random();
int i = rm.nextInt(18);
int n = 0;
if(i > 8){
n = rm.nextInt(10)+1;
}else if(i > 2&&i <= 8){
n = rm.nextInt(11) + 10;
}else if(i<=2){
n = rm.nextInt(11) + 20;
}
这样生成的整数n是 3/6的概率在1-10之间,2/6的概率是在10-20之间,1/6的概率是在20-30之间(这种都是伪随机,但尽量接近概率)
你看看这样行不行
希望对你有帮助