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