使用 Xn+1 =(a*Xn+c)mod m算法生成随机数:
package suijishu;
import java.math.BigInteger;
public class SuiJiShu{
public static void main(String[] args) {
int n=1000;
creat(n);
}
static BigInteger creat(int n) {//生成随机数
BigInteger a;
if(n==1) {
a=BigInteger.valueOf((int)Math.random()*100000+1);
System.out.println("第1个随机数是"+a);
return a;
}
else {
BigInteger i=creat(n-1).multiply(BigInteger.valueOf(16807));
a=i.mod(BigInteger.valueOf(Integer.MAX_VALUE));//随机数等于Creat(n-1)*16807%int.MAX_VALUE
System.out.println("第"+n+"个随机数是"+a);
return a;
}
import java.math.BigInteger;
public class SuiJiShu{
public static void main(String[] args) {
int n=1000;
creat(n);
}
static BigInteger creat(int n) {//生成随机数
BigInteger a;
if(n==1) {
a=BigInteger.valueOf((int)Math.random()*100000+1);
System.out.println("第1个随机数是"+a);
return a;
}
else {
BigInteger i=creat(n-1).multiply(BigInteger.valueOf(16807));
a=i.mod(BigInteger.valueOf(Integer.MAX_VALUE));//随机数等于Creat(n-1)*16807%int.MAX_VALUE
System.out.println("第"+n+"个随机数是"+a);
return a;
}
}
}
}
请看以下代码,你发现有什么特殊之处吗
// MethodOverload.java
// Using overloaded methods
public class MethodOverload {
public static void main(String[] args) {
System.out.println("The square of integer 7 is " + square(7));
System.out.println("
The square of double 7.5 is " + square(7.5));
}
public static int square(int x) {
return x * x;
}
public static double square(double y) {
return y * y;
}
}
我发现同样名称的函数可以不同,不同的参数类型可以自动调用相应的函数(方法),即方法的重载。
满足以下条件的两个或多个方法构成“重载”关系:
(1)方法名相同;
(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。