Math中的random方法:
注:
1、static修饰的,所以可以直接使用Math.random()调用
2、Math.random()的范围是 大于等于0.0,小于1.0的
java中随机取数使用random方法 构造函数方法有二:
① Random(long seed);//利用seed作为随机发生器的种子
② - Random(); //省略了seed,则则利用系统时间作为随机发生器的种子
Random random = new Random();
创建完随机对象之后通过以下方法可以获得不同类型的随机数method:
nextInt()、nextLong()、nextFloat()、nextDouble();
random方法的包:
import java.util.Random;
指定范围内的随机数三种方法:
//100以内的随机数
①通过java.util包中的Random类的next方法来获得
import java.util.Random;
public class CeShi{
public static void main(String []args) {
Random random = new Random();
for(int i=0;i<10;i++)
System.out.print(random.nextInt(100)+" ");
}
}
②(数据类型)(最小值+Math.random()*(最大值-最小值+1))
(int)(Math.random()*(100-1+1))
System.out.print((int)(Math.random()*100)+" ");
③利用%进行取模操作即可
产生的随机数有正有负,利用abs方法取绝对值 通过%100就能得到100 以内的随机数
System.out.print(Math.abs(random.nextInt()%100)+" ");
例题详解:
获取a-b之间的随机数,例子:返回2–7之间的随机整数
public class MathMethod {
public static void main(String[] args) {
//获取a-b之间的随机数,例子:返回2--7之间的随机整数
//分析:
//1. Math.random()是获取0-1之间的随机小数,0可取,1不可取, 0 <= Math.random() < 1
//2.获取a-b之间是随机数,就: a + (Math.random()*(b-a+1))
// 分析: 因为 0 <= Math.random() < 1 ,(b-a)< (b-a+1) < (b-a+1)
// 所以:0*(b-a) <= Math.random()*(b-a+1) < 1*( b-a+1 )
// 所以:0 <= Math.random()*(b-a+1) < (b-a+1)
// 又因为:a+0 <= Math.random()*(b-a+1) < a+(b-a+1)
// 所以:a <= Math.random()*(b-a+1) < b+1
//3.要想获得整数,就需要用 int 去强制转换所获得的随机值,单纯 (int)Math.random()=0
//4.所以要想获得a-b之间的随机整数就:(int)(a + (Math.random()*(b-a+1)))
//5.用a=2,b=7,循环十次来测试是否正确
for (int i = 0; i <10 ; i++) {
System.out.print(((int)(2+Math.random()*(7-2+1)))+"\t");
//用制表位去改输出格式,就不用换行输出了
}
}
}
输出:
2 2 4 7 3 7 7 2 7 6
随机数的篇幅就到这里了,可以私信小王和你探讨哦,同时感兴趣其他Math方法,或者想更加了解Java的可以查看小王的其他章节哦,小王博客里有Java从精通到入门的所有笔记吖,可以参考哟,谢谢~~~~