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


          最近上课老师说出了一些随机数生成的方法,我通过上网查阅资料了解到其中有几种方法,一种是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("
    The 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;
        }
  • 相关阅读:
    使用IntelliJ IDEA配置Tomcat(入门)
    关于hive异常:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStor
    完整过程解决 ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO)
    Hadoop伪分布式配置
    Spark_scala_Maven项目创建
    Spark-WordCount
    tesseract-ocr的安装及使用
    解决selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in P
    python第三方库资源
    kafka伪分布式配置
  • 原文地址:https://www.cnblogs.com/huan-ch/p/9785741.html
Copyright © 2020-2023  润新知