纯随机数发生器:
Modulus=231-1=int.MaxValue
Multiplier=75=16807
C=0
当显示过231-2个数之后,才可能重复。
代码实现:
1 import java.util.Random; 2 import java.util.Scanner; 3 4 public class ClassTest { 5 public static void main(String[] args) { 6 System.out.println("请输入要产生的随机整数个数:"); 7 Scanner sc=null; 8 sc=new Scanner(System.in); 9 int n=sc.nextInt(); 10 Random ran=new Random(); //定义一个随机数类型 11 int a=ran.nextInt(); 12 for(int i=0;i<n;i++) { 13 System.out.print(a+" "); 14 a=16807*a%2147483647; //运用所给公式求随机数 在2的31次方-2 个数字之后才会重复 15 if((i+1)%5==0) { //每五个随机数一行 16 System.out.println(); 17 } 18 } 19 20 } 21 }
动手动脑:
请看以下代码,你发现了有什么特殊之处吗?
改变了参数的类型,就可以对不同的类型参数进行运算,即重载,让系统运行的时候有选择性。除了更改参数类型以外,还可以更改参数的个数,还有参数的顺序。