相关概念
伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。伪随机数可以用计算机大量生成,在模拟研究中为了提高模拟效率,一般采用伪随机数代替真正的随机数。模拟中使用的一般是循环周期极长并能通过随机数检验的伪随机数,以保证计算结果的随机性。
实例代码
public class Demo1 {
//伪随机数
public static void main(String[] args) {
//先创建一个用于生成随机数的工具
Random random = new Random();
int num = random.nextInt(); //括号里面的参数为范围
System.out.println(num);
}
}
获取随机数的一些方法:
方法1:(数据类型)(最小值+Math.random()*(*最大值-最小值+最小值))
例: (int)(1+Math.random()(10-1+1))
从1到10的int型随数
方法2:(类型)最小值+Math.random()*最大值
例: for (int i=0;i<30;i++){
System.out.println((int)(1+Math.random()*10));
}
通过java.Math包的random方法得到1-10的int随机数
方法3:Random random =new Random();
例: for (int i=0;i<30;i++){
System.out.println(ra.nextInt(10)+1);
}
随机给定范围内N个不重复的数:
方法一:最简单最易理解的两重循环去重
/**
* 随机指定范围内N个不重复的数
* 最简单最基本的方法
* @param min 指定范围最小值
* @param max 指定范围最大值
* @param n 随机数个数
*/
public static int[] randomCommon(int min, int max, int n){
if (