码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-10-14 14:07:56      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:ade   random   void   line   static   老师   tin   随机数生成器   函数参数   

 

      最近上课老师说出了一些随机数生成的方法,我通过上网查阅资料了解到其中有几种方法,一种是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;
    }

 

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

标签:ade   random   void   line   static   老师   tin   随机数生成器   函数参数   

原文地址:https://www.cnblogs.com/huan-ch/p/9785741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!