动手动脑:随机数发生器和函数重载

      最近上课老师说出了一些随机数生成的方法,我通过上网查阅资料了解到其中有几种方法,一种是math.random方法这种方法被称为伪随机,也就是有规律的随机,有可能会出现重。第二种是用种子来进行随机数的产生。其中到用到了random类。这种方法通过不断更新种子的值来进行输出不同的随机数,这种生成方法再一次运行中对于不同的种子有不同的随机数值,也就是说对于相同的种子数值,他会有一样的数值来进行输出。种子数值相近的话生成的随机数也会很相近,这种原理,在以后的学习中我会进行进一步的学习。

下面是随机数发生器(用种子创建):

import java.util.Random;
import java.util.Scanner;

public class RandomNum {

    public static void main(String[] args) {                                  //main函数调用随机数方法
        produce();
    }

    private static void produce() {                                        //生成随机数
        long seed=1000;
        Scanner reader =new Scanner(System.in);
        System.out.println("请输入输出个数");
        int len =reader.nextInt();
        for(int i=0;i<len;i++) {
            seed = setseed(seed);
            Random r1 = new Random(seed);                                    //创建一个带种子的随机数生成器
            System.out.println(r1.nextInt());
        }
        
    }

    private static long setseed(long seed) {                                //更新种子的值
        long seed2;
        seed2=(long) ((16807*seed)%(2e31-1));
        return seed2;    
    }

}

       关于函数重载,我学习到了函数重载其中包括:函数参数类型不同,函数个数不同,函数类型顺序不同但是函数返回值不当做函数重载的方法,因为计算机需要在调用的时候就明确需要调用的是那个函数,而函数的返回值不同这是在函数调用结束时才体现不同,计算机对此会报错。

 synchronized (this) {
            print(x);
            newLine();
        }

      这是有关println的一些函数定义,其中的synchronized,我通过上网查资料初步了解到正是一个可以绑定的函数,可以在实现一个语句的时候也会实现另一个语句。

  关于函数重载我们在C++、c的时候也了解到比如类的构造函数可以重载,以及一些特殊字符都可以进行重载来达到一些相应的目的,完成一些操作。下面这段代码是对一个定义的平方函数进行重载,是以函数参数类型的不同来进行区分的,来完成对int和double类型的数值进行不同的调用,完成平方操作。

    public static void main(String[] args) {
        System.out.println("The square of integer 7 is " + square(7));
        System.out.println("\nThe 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;
    }

猜你喜欢

转载自www.cnblogs.com/huan-ch/p/9785741.html