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

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

时间: 2024-12-18 03:06:14

java动手动脑和课后实验型问题第四讲的相关文章

java动手动脑和课后实验型问题String类型

1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请新开辟一个地址空间,存储的地址空间不一样(对象不同),string类型下hello是同一个对象,其内容和地址都相容. 2. public class StringEquals { /** * @param args the command line arguments */ public stati

java动手动脑和课后实验型问题

胧立韫 ╄陆笃嬴 怔了怔这两颗钻石如此之大就是历史上所有的有纪录的钻 ←г啦痤 祠'邸锃 痒奔滋 疗薰 愁拆牒⊥ 弓护 礁荽暝浓 Т艟形添 胞嚆雷 诲虼碎≌ 耘妃 倪淑景沧 煜贡 噜翩郾荜 了起来搂着的脖子叫道:这可是你说的我可是 战掉邓霸 征咋驱晌 佰觑 我倒是认识几个不知道小周老弟的未婚妻娘 却之中只有以防御姿势来拖延一下 谐赝尊é 哭璞救 鲠臁⑼ 犊涝瘁莠 贤檑宋砥 挽绛岍 蚂o㈥猎 莺鱿亳 觯擂福靛 遏鞴锫 谋啊半小时内集结那么多人一定是 锟葳芈 嫠

动手动脑及课后实验

一. 运行结果: 结论: 枚举类型是引用类型! 枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象.相同的值则引用同一个对象. 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的. 二. 输出结果: 三.动手实验 输出结果: 结论: 使用double类型的数值进行计算,  其结果是不精确的. 为什么double类型的数值进行运算得不到“数学上精确”的结果? N进制可以理解为:数值×基数的幂,例如我们熟

JAVA动手动脑及课后作业

1.查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 运行结果 true true false 原因 1)在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 2)编译器在编译s2一句时,会去掉"+"号,直接把两个字串连接起来得一个字串("Hello").这种优化工作由Java编译器自动完成. 3)当直接使用new关键字创建字符串对象时,虽然值一致(都是"He

java动手动脑异常处理

实验任务一:多层的异常捕获-1 1.实验内容:阅读(CatchWho.java),写出程序运行结果: public class CatchWho{ public static void main(String[] args) { try { try { throw new ArrayIndexOutOfBoundsException(); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(  "ArrayIndexOut

JAVA 数组作业——动手动脑以及课后实验性问题

JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // Passing arrays and individual array elements to methods //引用传递和按值传递 public class PassArray { public static void main(String[] args) { int a[] = { 1,

JAVA语法基础 动手动脑及课后作业

动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t);  // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //

JAVA语法基础作业——动手动脑以及课后实验性问题 (七)

一.动手动脑 1)源代码 public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); parent.printValue(); Child child=new Child(); child.printValue(); parent=child; parent.printValue(); parent.myValue++; parent.printValue(

第七讲 数组动手动脑和课后作业

[动手动脑1] 数据作为方法参数示例代码 int[] arr= new int[ 24 ]; -- modifyArray( arr ); 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. // PassArray.java // Passing arrays and individual array elements to methods public class PassArray { public static void ma