zoukankan      html  css  js  c++  java
  • java动手动脑和课后实验型问题第四讲

    1.完全“手写代码实现”随机数生成

    动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

    Modulus=231-1=int.MaxValue

    Multiplier=75=16807

    C=0

    当显示过231-2个数之后,才可能重复。

    编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

    public class suiji

    {

      private static final int N = 200;

      private static final int LEFT = 40;

      private static final int RIGHT = 10000;

      private static long x0 = 1L;

      private long a = 1103515245L;

      private long c = 12345L;

      private long m = 2147483648L;

     

      // 产生随机数

      private long rand ( long r )

      {

        // a,c,m为常数

        r = ( r * a + c ) % m;//Xn+1=(aXn + c)mod m

        return r;

      }

     

      private long little ( int a, int b, long rand )

      {

        return a + rand % ( b - a + 1 );

      }

     

      private void recursion ( int count, long rand )

      {

        if (count >= N)

        {

          return;

        }

        rand = rand (rand);

        long r = little (LEFT, RIGHT, rand);

        System.out.print (r + " ");

        recursion (++count, rand);

      }

     

      public static void main ( String[] args )

      {

        suiji recur = new suiji ();

        recur.recursion (0, x0);

      }

    }

    2.

    请看以下代码,你发现了有什么特殊之处吗?

    我发现同样名称的函数可以不同,不同的参数类型可以自动调用相应的函数(方法),即方法的重载。

    满足以下条件的两个或多个方法构成“重载”关系:

    (1)方法名相同;

    (2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。

    注意:方法的返回值不作为方法重载的判断条件。

     
  • 相关阅读:
    guava快速入门
    自旋锁解决StackOverflowError案例
    Java内存模型
    Java中sleep()与wait()区别
    wait()、notify()、notifyAll()与线程通信方式总结
    同步代码块、同步方法、锁总结
    如何把Go调用C的性能提升10倍?
    记一次虚拟化环境下Windows IO性能的解析
    win7(64bit)使用mingw64配置gtkmm
    你的深度工作,决定了你的后半生(刻意练习,最主要的竞争对手是无聊)
  • 原文地址:https://www.cnblogs.com/ming123/p/5965935.html
Copyright © 2011-2022 走看看