zoukankan      html  css  js  c++  java
  • 检索02--随机数种子的一些概念和理解

    Random ran = new Random();

    括号里存放的即为随机数的种子,如果不存放,默认为计算机的系统时间;

    默认情况下,Random 类的无参数构造函数使用系统时钟生成其种子值,而参数化构造函数可根据当前时间的计时周期数采用 Int32 值。但是,因为时钟的分辨率有限,所以,如果使用无参数构造函数连续创建不同的 Random 对象,就会创建生成相同随机数序列的随机数生成器。

         种子跟产生随机数的算法有关,事实上没有绝对真实的随机数,我们所说的随机数,其实是在一个初始数字的基础上(也就是种子)通过移位什么的得到的,那么,也就以为这,同一个种子,会总是得到相同的随机序列。

      随机数种子就是产生随机数的源头机制是通过一个复杂(有时不是很复杂)的函数,将一个种子的值转化为随机数空间中的某一个点上(数),好的函数会产生很大的空间,并且产生的随机数均匀的散布在空间中。

         A.相同种子的随机数,具有相同的随机数序列。

      比如:你的种子是123456,第一次调的时候,第一个随机数为N,那么,不管在什么地方调,它的第一个随机数都将为N,因为种子不变.但是这个随机数列表中的各项值,是随机的。也就是说,第二个随机数为N2..。

      

      如果应用程序需要不同的随机数序列,则使用不同的种子值重复调用此构造函数。一种产生唯一种子值的方法是使它与时间相关。例如,从系统时钟派生出种子值。但是,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此构造函数的调用之间进行更改,Random 的不同实例的种子值可能相同。

    B.不同的种子具有不同的序列。

      所以有Random rdn = new Random(); 就是以当前时间为种子,用来长生不同的随机数。经常获得第一个随机数。

  • 相关阅读:
    js实现base64转换
    使用maven命令终端构建一个web项目及发布该项目
    使用eclipse构建Maven项目及发布一个Maven项目
    Maven在Windows上的安装与配置
    centos7下安装配置redis3.0.4
    Centos7下完美安装并配置mysql5.6
    linux常用命令总结
    VMware下centos桥接模式静态ip配置
    解决centos7下tomcat启动正常,无法访问项目的问题
    centos7系统下安装配置jdk、tomcat教程
  • 原文地址:https://www.cnblogs.com/whytohow/p/4712237.html
Copyright © 2011-2022 走看看