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)参数类型不同,参数个数不同,或者是参数类型的顺序不同。

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

     
  • 相关阅读:
    VCL源码修改立即生效
    让C++控制台程序停下来,实现暂停功能
    Ubuntu系统中初次下载Android源码的一点经验
    理解SetCapture、ReleaseCapture、GetCapture(控制了消息发往哪个窗口,即消息窗口)
    又发现2个高人写的Delphi图文并茂的消息研究
    0x0118消息就是WM_SYSTIMER
    QT信号槽与Delphi事件的对比
    使用VS2005安装和编译QT4.53源码
    使用SmsManager服务群发短信
    减小VirtualBox虚拟硬盘文件的大小
  • 原文地址:https://www.cnblogs.com/ming123/p/5965935.html
Copyright © 2011-2022 走看看