一,
完全“手写代码实现”随机数生成
例:在范围0~1000中生成20个随机数
1 package 生成随机数; 2 public class Suiji { 3 private static final int N = 20;//生成随机数的个数 4 private static final int LEFT = 0;//生成随机数的左范围 5 private static final int RIGHT = 1000;//生成随机数的右范围 6 private static long x0 = 1L; 7 private long a = 1234567890L; 8 private long c = 12345L; 9 private long m = 2345678912L; 10 // 产生随机数 11 private long rand ( long r ) 12 { 13 // a,c,m为常数 14 r = ( r * a + c ) % m;//Xn+1=(aXn + c)mod m 15 return r; 16 } 17 private long little ( int L, int R, long rand ){ 18 return L + rand % ( R - L + 1 ); 19 } 20 int jishu=1; 21 private void recursion ( int count, long rand ){ 22 if (count >= N) { 23 return; 24 } 25 rand = rand (rand); 26 long r = little (LEFT, RIGHT, rand); 27 System.out.print (r + " "); 28 recursion (++count, rand); 29 } 30 public static void main(String[] args) { 31 Suiji a = new Suiji (); 32 a.recursion (0, x0); 33 } 34 }
运行结果:
二,方法重载
我发现同名函数可以重载从而实现不同的类型的运算。
满足以下条件的两个或多个方法可以构成“重载”关系:
(1)方法名相同;
(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。
注意:方法的返回值不可以作为方法重载的判断条件。