类 AbstractWell

java.lang.Object
org.hipparchus.random.AbstractWell
所有已实现的接口:
Serializable, RandomGenerator
直接已知子类:
Well1024a, Well19937a, Well19937c, Well44497a, Well44497b, Well512a

public abstract class AbstractWell extends Object implements Serializable
这个抽象类实现了来自François Panneton、Pierre L'Ecuyer和松本真的WELL伪随机数生成器类。

这个生成器在François Panneton、Pierre L'Ecuyer和松本真的一篇论文中有描述:基于模2线性递归的改进长周期生成器 ACM Transactions on Mathematical Software, 32, 1 (2006)。该论文的勘误在wellrng-errata.txt中。

另请参阅:
  • 嵌套类概要

    嵌套类
    修饰符和类型
    说明
    protected static final class 
    用于存储给定类型WELL伪随机数生成器的间接索引表的内部类。
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    protected int
    字节池中的当前索引。
    protected final int[]
    v
    字节池。
  • 构造器概要

    构造器
    限定符
    构造器
    说明
    protected
    AbstractWell(int k)
    创建一个新的随机数生成器。
    protected
    AbstractWell(int k, int seed)
    使用单个int种子创建一个新的随机数生成器。
    protected
    AbstractWell(int k, int[] seed)
    使用int数组种子创建一个新的随机数生成器。
    protected
    AbstractWell(int k, long seed)
    使用单个long种子创建一个新的随机数生成器。
  • 方法概要

    修饰符和类型
    方法
    说明
    protected void
    清除默认实现中用于RandomGenerator.nextGaussian()的缓存。
    boolean
    从该随机数生成器的序列中返回下一个伪随机、均匀分布的boolean值。
    void
    nextBytes(byte[] bytes)
    生成随机字节并将其放入用户提供的字节数组中。
    void
    nextBytes(byte[] bytes, int start, int len)
    生成随机字节并将其放入用户提供的字节数组中。
    double
    从该随机数生成器的序列中返回下一个伪随机、均匀分布在0.01.0之间的double值。
    float
    从该随机数生成器的序列中返回下一个伪随机、均匀分布在0.01.0之间的float值。
    double
    从该随机数生成器的序列中返回下一个伪随机、均匀分布的double值,其均值为0.0,标准差为1.0
    abstract int
    从该随机数生成器的序列中返回下一个伪随机、均匀分布的int值。
    int
    nextInt(int n)
    从该随机数生成器的序列中返回一个伪随机、均匀分布的int值,范围从0(包括)到指定值(不包括)。
    long
    从该随机数生成器的序列中返回下一个伪随机、均匀分布的long值。
    long
    nextLong(long n)
    从该随机数生成器的序列中返回一个伪随机、均匀分布的int值,范围从0(包括)到指定值(不包括)。
    void
    setSeed(int seed)
    使用一个int种子设置底层随机数生成器的种子。
    void
    setSeed(int[] seed)
    重新初始化生成器,就像使用给定的int数组种子刚构建的一样。
    void
    setSeed(long seed)
    使用一个long种子设置底层随机数生成器的种子。

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 字段详细资料

    • index

      protected int index
      字节池中的当前索引。
    • v

      protected final int[] v
      字节池。
  • 构造器详细资料

    • AbstractWell

      protected AbstractWell(int k)
      创建一个新的随机数生成器。

      该实例使用当前时间加上该实例的系统标识哈希码作为种子进行初始化。

      参数:
      k - 池中的位数(不一定是32的倍数)
    • AbstractWell

      protected AbstractWell(int k, int seed)
      使用单个int种子创建一个新的随机数生成器。
      参数:
      k - 池中的位数(不一定是32的倍数)
      seed - 初始种子(32位整数)
    • AbstractWell

      protected AbstractWell(int k, int[] seed)
      使用int数组种子创建一个新的随机数生成器。
      参数:
      k - 池中的位数(不一定是32的倍数)
      seed - 初始种子(32位整数数组),如果为null,则生成器的种子将与当前时间相关
    • AbstractWell

      protected AbstractWell(int k, long seed)
      使用单个long种子创建一个新的随机数生成器。
      参数:
      k - 池中的位数(不一定是32的倍数)
      seed - 初始种子(64位整数)
  • 方法详细资料

    • setSeed

      public void setSeed(int[] seed)
      重新初始化生成器,就像使用给定的int数组种子刚构建的一样。

      生成器的状态与使用相同种子构建的新生成器完全相同。

      指定者:
      setSeed 在接口中 RandomGenerator
      参数:
      seed - 初始种子(32位整数数组)。如果为null,则生成器的种子将是系统时间加上该实例的系统标识哈希码。
    • nextInt

      public abstract int nextInt()
      从该随机数生成器的序列中返回下一个伪随机、均匀分布的int值。

      所有232个可能的int值应该以(大约)相等的概率产生。

      返回:
      从该随机数生成器的序列中返回下一个伪随机、均匀分布的int
    • nextBoolean

      public boolean nextBoolean()
      从该随机数生成器的序列中返回下一个伪随机、均匀分布的boolean值。
      返回:
      从该随机数生成器的序列中返回下一个伪随机、均匀分布的boolean
    • nextDouble

      public double nextDouble()
      从该随机数生成器的序列中返回下一个伪随机、均匀分布在0.01.0之间的double值。
      返回:
      从该随机数生成器的序列中返回下一个伪随机、均匀分布在0.01.0之间的double
    • nextFloat

      public float nextFloat()
      从该随机数生成器的序列中返回下一个伪随机、均匀分布在0.01.0之间的float值。
      返回:
      从该随机数生成器的序列中返回下一个伪随机、均匀分布在0.01.0之间的float
    • nextLong

      public long nextLong()
      从该随机数生成器的序列中返回下一个伪随机、均匀分布的long值。所有264个可能的long值应该以(大约)相等的概率产生。
      返回:
      从该随机数生成器的序列中返回下一个伪随机、均匀分布的long
    • nextBytes

      public void nextBytes(byte[] bytes)
      生成随机字节并将其放入用户提供的字节数组中。生成的随机字节数量等于字节数组的长度。
      参数:
      bytes - 非空字节数组,用于放置随机字节
    • nextBytes

      public void nextBytes(byte[] bytes, int start, int len)
      生成随机字节并将其放入用户提供的字节数组中。
      参数:
      bytes - 非空字节数组,用于存放随机字节
      start - 插入生成字节到数组中的起始索引
      len - 要生成的字节数
    • setSeed

      public void setSeed(int seed)
      设置基础随机数生成器的种子,使用一个int种子。

      从相同种子开始生成的值序列应该是相同的。

      指定者:
      setSeed 在接口中 RandomGenerator
      参数:
      seed - 种子值
    • setSeed

      public void setSeed(long seed)
      设置基础随机数生成器的种子,使用一个long种子。

      从相同种子开始生成的值序列应该是相同的。

      指定者:
      setSeed 在接口中 RandomGenerator
      参数:
      seed - 种子值
    • nextInt

      public int nextInt(int n) throws IllegalArgumentException
      返回一个伪随机、均匀分布的int值,范围在0(包括)到指定值(不包括)之间,从该随机数生成器的序列中抽取。
      指定者:
      nextInt 在接口中 RandomGenerator
      参数:
      n - 要返回的随机数的上限。必须是正数。
      返回:
      一个伪随机、均匀分布的int值,范围在0(包括)到n(不包括)之间。
      抛出:
      IllegalArgumentException - 如果n不是正数。
    • nextLong

      public long nextLong(long n)
      返回一个伪随机、均匀分布的int值,范围在0(包括)到指定值(不包括)之间,从该随机数生成器的序列中抽取。
      指定者:
      nextLong 在接口中 RandomGenerator
      参数:
      n - 要返回的随机数的上限。必须是正数。
      返回:
      一个伪随机、均匀分布的int值,范围在0(包括)到n(不包括)之间。
    • nextGaussian

      public double nextGaussian()
      返回下一个伪随机、高斯(“正态”)分布的double值,均值为0.0,标准差为1.0,从该随机数生成器的序列中抽取。
      指定者:
      nextGaussian 在接口中 RandomGenerator
      返回:
      下一个伪随机、高斯(“正态”)分布的double值,均值为0.0,标准差为1.0,从该随机数生成器的序列中抽取
    • clearCache

      protected void clearCache()
      清除默认实现的RandomGenerator.nextGaussian()使用的缓存。
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object