Java中产生随机数的方法有两种:
第一种:Math.random()
1.生成个位的随机数
int math = (int) ((Math.random() * 10));
2.生成个位不包括0的随机数
int math = (int) ((Math.random() * 9 + 1));
3. 生成n位不包括0的随机数
(十分位:n=10;百分位:n=100;千分位:n=1000;以此类推)
int math = (int) ((Math.random() * 9 + 1) * (n);
第二种:new Random()
4.产生指定范围的随机数
以产生[10,99]范围内的随机数为例
int min = 10;
int max = 99;
Random random = new Random();
int num = random.nextInt(max)%(max-min+1) + min;
方法 | 说明 |
---|---|
boolean nextBoolean() | 生成一个随机的 boolean 值,生成 true 和 false 的值概率相等 |
double nextDouble() | 生成一个随机的 double 值,数值介于[0,1.0),含 0 而不包含 1.0 |
int nextlnt() | 生成一个随机的 int 值,该值介于 int 的区间,也就是 -231~231-1。如果 需要生成指定区间的 int 值,则需要进行一定的数学变换 |
int nextlnt(int n) | 生成一个随机的 int 值,该值介于 [0,n),包含 0 而不包含 n。如果想生成 指定区间的 int 值,也需要进行一定的数学变换 |
void setSeed(long seed) | 重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象 和相同种子数使用 new 关键字创建出的 Random 对象相同 |
long nextLong() | 返回一个随机长整型数字 |
boolean nextBoolean() | 返回一个随机布尔型值 |
float nextFloat() | 返回一个随机浮点型数字 |
double nextDouble() | 返回一个随机双精度值 |
Import java.util.Random;
public class Test{
public static void main(String[] args){
Random r=new Random();
double d1=r.nextDouble(); //生成[0,1.0]区间的小数
double d2=r.nextDouble()*7; //生成[0,7.0]区间的小数
int i1=r.nextInt(10); //生成[0,10]区间的整数
int i2=r.nextInt(18)-3; //生成[-3,15]区间的整数
long l1=r.nextLong(); //生成一个随机长整型值
boolean b1=r.nextBoolean(); //生成一个随机布尔型值
float f1=r.nextFloat{); //生成一个随机浮点型值
for(int i=1;i<8;i++){
int num=r.nextlnt(9); //生成[0,9]区间的整数
System.out.print(num);
}
}
}