两种产生随机数的方法:
1、通过import java.util.Random来实现
2、Math.random()
一、第一种的话就是导入Random之后,先生成一个Random对象r,之后再利用r这个对象生成随机数
在生成Random对象r的时候你可以向里面放一个随机数种子,当然也可以不放,不放的话默认就是把当前时间当为随机数种子
下面代码比较一下放置随机数种子和不放随机数种子所产生Random对象r的不同
import java.util.Random; import java.io.*; import java.util.Scanner; public class smile { public static void main(String[] args) throws IOException { Random rr = new Random(1); for(int i=1;i<=5;++i) { int num = rr.nextInt(50); System.out.println("随机数为:"+num); } Random rrr = new Random(1); for(int i=1;i<=5;++i) { int num = rrr.nextInt(50); System.out.println("随机数为:"+num); } } }
结果为:
随机数为:35
随机数为:38
随机数为:47
随机数为:13
随机数为:4
随机数为:35
随机数为:38
随机数为:47
随机数为:13
随机数为:4
你会发现它的随机数其实并不是完全的随机
import java.util.Random; import java.io.*; import java.util.Scanner; public class smile { public static void main(String[] args) throws IOException { Random rr = new Random(); for(int i=1;i<=5;++i) { int num = rr.nextInt(50); System.out.println("随机数为:"+num); } Random rrr = new Random(); for(int i=1;i<=5;++i) { int num = rrr.nextInt(50); System.out.println("随机数为:"+num); } } }
结果:
随机数为:36
随机数为:22
随机数为:10
随机数为:33
随机数为:15
随机数为:42
随机数为:38
随机数为:49
随机数为:12
随机数为:30
这个相比较而言就是较彻底的随机
二、第二种方法返回的数值是double类型[0.0,1.0],但是double类型精度很高,可以在一定程度上看作随机数,借助(int)强制转化来转变成随机数
public static void main(String[] args) { int max=100,min=1; int ran2 = (int) (Math.random()*(max-min)+min); System.out.println(ran2); }
其实第一种方法也可以利用取余的方法生成一个范围内的数据