在 Java 中,你可以使用 java.util.Random
类以指定的种子生成随机数并统计出现的次数。
Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。
以下是一个示例代码,可以生成一个指定长度的随机数:
package com.test;
/**
* 用java生成0-9之间的随机整数,并统计个数出现的次数
*/
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int[] data = new int[10];
Random random = new Random();
for(int i=0;i<100;i++){
data[random.nextInt(10)]++;
}
for(int i=0;i<10;i++){
System.out.println(i + "出现次数:"+data[i]);
}
}
}
关于Math类中的random方法
其实在Math类中也有一个random方法,该random方法的工作是生成一个[0,1.0)区间的随机小数。
通过阅读Math类的源代码可以发现,Math类中的random方法就是直接调用Random类中的nextDouble方法实现的。
只是random方法的调用比较简单,所以很多程序员都习惯使用Math类的random方法来生成随机数字。