生成1~6的随机整数

生成随机数

题目:
生成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)不包括7int类型,像6.6这样的数就是6.
其他代码同上

如何产生其他类型的随机数,请看另一篇文章java.util.Random.

你可能感兴趣的