生成随机数
题目:
生成100个1到6的随机整数,统计1~6每个数字出现的概率
方法一:
使用java.util.Math
Math类中有一个静态方法:random(),生成double类型的随机数(范围:[0.0~1.0) 不包括1)
Modifier and Type | Method | Description |
---|---|---|
static double | random() | 生成double类型的随机数(范围:[0.0~1.0) 不包括1) |
如何生成1~6的随机整数?
int x=(int)(Math.random()*6+1);
Math.random()*6 范围是 [0.0-6.0) 不包括6
Math.random()*6+1 范围是[1.0-7.0) 不包括7
但是有强制类型转换double-->int,所以6.7会被转换成6
代码:
public class CreatRandom1 {
public static void main(String[] args) {
int[] arr1=new int[100];
int[] arr2=new int[7];
for (int i = 0; i < arr1.length; i++) {
arr1[i]=(int)(Math.random()*6+1);
arr2[arr1[i]]++;
}
for (int j = 1; j < arr2.length; j++) {
System.out.println(j+"数字出现了:"+arr2[j]+"次");
}
}
}
方法二:
使用java.util.Random
Random类中一个方法 nextInt(int bound),生成0.0到指定范围的随机整数
Modifier and Type | Method | Description |
---|---|---|
int | nextInt(int bound) | 生成随机整数(范围:[0.0~bound) 不包括bound) |
如何生成1~6的随机整数?
Random random=new Random();
int x=random.nextInt(6)+1;
random.nextInt(6) 范围:[0.0-6.0) 不包括6
random.nextInt(6)+1 范围:[1.0-7.0)不包括7,int类型,像6.6这样的数就是6.
其他代码同上