类 RandomDataGenerator

java.lang.Object
org.hipparchus.random.RandomDataGenerator
所有已实现的接口:
Serializable, RandomGenerator

public class RandomDataGenerator extends Object implements RandomGenerator, Serializable
用于生成随机数据的类。
另请参阅:
  • 构造器概要

    构造器
    构造器
    说明
    使用默认的RandomGenerator构造一个RandomDataGenerator,作为其随机数据源。
    RandomDataGenerator(long seed)
    使用给定的种子值初始化一个默认的RandomGenerator作为其随机数据源的RandomDataGenerator。
  • 方法概要

    修饰符和类型
    方法
    说明
    protected RandomGenerator
    返回被委托实例,方法将被转发到该实例。
    double
    nextBeta(double alpha, double beta)
    返回具有给定形状和比例参数的下一个伪随机beta分布值。
    boolean
    从此随机数生成器的序列中返回下一个伪随机、均匀分布的boolean值。
    void
    nextBytes(byte[] bytes)
    生成随机字节并将其放入用户提供的字节数组中。
    void
    nextBytes(byte[] bytes, int offset, int length)
    生成随机字节并将其放入用户提供的字节数组中。
    int
    返回给定分布的随机偏差。
    double
    返回给定分布的随机偏差。
    int[]
    nextDeviates(IntegerDistribution dist, int size)
    返回给定分布的随机偏差数组。
    double[]
    nextDeviates(RealDistribution dist, int size)
    返回给定分布的随机偏差数组。
    double
    从此随机数生成器的序列中返回下一个伪随机、均匀分布的double值,介于0.01.0之间。
    double
    nextExponential(double mean)
    返回下一个伪随机、指数分布的偏差。
    float
    从此随机数生成器的序列中返回下一个伪随机、均匀分布的float值,介于0.01.0之间。
    double
    nextGamma(double shape, double scale)
    返回具有给定形状和比例参数的下一个伪随机gamma分布值。
    double
    从此随机数生成器的序列中返回下一个伪随机、高斯("正态")分布的double值,均值为0.0,标准差为1.0
    nextHexString(int len)
    生成长度为len的十六进制字符的随机字符串。
    int
    从此随机数生成器的序列中返回下一个伪随机、均匀分布的int值。
    int
    nextInt(int n)
    从此随机数生成器的序列中返回介于0(包括)和指定值(不包括)之间的均匀分布的int值。
    int
    nextInt(int lower, int upper)
    返回介于下限和上限(包括)之间的均匀分布的随机整数。
    double
    nextLogNormal(double shape, double scale)
    返回下一个对数正态分布的伪随机偏差。
    long
    从此随机数生成器的序列中返回下一个伪随机、均匀分布的long值。
    long
    nextLong(long n)
    从此随机数生成器的序列中返回介于0(包括)和指定值(不包括)之间的均匀分布的int值。
    long
    nextLong(long lower, long upper)
    返回介于下限和上限(包括)之间的均匀分布的随机长整数。
    double
    nextNormal(double mean, double standardDeviation)
    返回下一个正态分布的伪随机偏差。
    int[]
    nextPermutation(int n, int k)
    从整数0, ..., n - 1(包括)中随机选择,生成长度为k的整数数组,不重复。
    int
    nextPoisson(double mean)
    返回具有给定均值的泊松分布的偏差。
    double[]
    nextSample(double[] a, int k)
    从双精度数组a中随机选择k个双精度值,返回数组。
    Object[]
    nextSample(Collection<?> c, int k)
    从集合c中随机选择k个对象,返回数组。
    int[]
    nextSampleWithReplacement(int sampleSize, double[] weights)
    使用权重作为概率,从{0, 1, ... , weights.length - 1}中随机选择大小为sampleSize的随机样本。
    double
    nextUniform(double lower, double upper)
    返回在[lower, upper]范围内均匀分布的双精度值。
    int
    nextZipf(int numberOfElements, double exponent)
    返回遵循给定参数的Zipf分布的整数值。
    of(RandomGenerator randomGenerator)
    使用提供的RandomGenerator创建一个RandomData实例的工厂方法。
    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, toString, wait, wait, wait
  • 构造器详细资料

    • RandomDataGenerator

      public RandomDataGenerator()
      使用默认的RandomGenerator构造一个RandomDataGenerator,作为其随机数据源。
    • RandomDataGenerator

      public RandomDataGenerator(long seed)
      使用给定的种子值初始化一个默认的RandomGenerator作为其随机数据源的RandomDataGenerator。
      参数:
      seed - 种子值
  • 方法详细资料

    • of

      public static RandomDataGenerator of(RandomGenerator randomGenerator)
      使用提供的RandomGenerator创建一个RandomData实例的工厂方法。
      参数:
      randomGenerator - 随机位的来源
      返回:
      使用给定的RandomGenerator作为位来源的RandomData
      抛出:
      MathIllegalArgumentException - 如果randomGenerator为null
    • delegate

      protected RandomGenerator delegate()
      返回被委托实例,方法将被转发到该实例。

      具体子类重写此方法以提供被装饰的实例。

      返回:
      委托实例
    • nextBeta

      public double nextBeta(double alpha, double beta)
      返回具有给定形状和比例参数的下一个伪随机beta分布值。
      参数:
      alpha - 第一个形状参数(必须为正数)。
      beta - 第二个形状参数(必须为正数)。
      返回:
      beta分布的随机偏差
    • nextExponential

      public double nextExponential(double mean)
      返回下一个伪随机、指数分布的偏差。
      参数:
      mean - 指数分布的均值
      返回:
      关于给定均值的指数分布偏差
    • nextGamma

      public double nextGamma(double shape, double scale)
      返回具有给定形状和比例参数的下一个伪随机gamma分布值。
      参数:
      shape - 分布的形状参数
      scale - 分布的比例参数
      返回:
      gamma分布的随机偏差
    • nextNormal

      public double nextNormal(double mean, double standardDeviation)
      返回下一个正态分布的伪随机偏差。
      参数:
      mean - 正态分布的均值
      standardDeviation - 正态分布的标准差
      返回:
      一个随机值,正态分布的均值和标准差
    • nextLogNormal

      public double nextLogNormal(double shape, double scale)
      返回下一个对数正态分布的伪随机偏差。
      参数:
      shape - 对数正态分布的形状参数
      scale - 对数正态分布的比例参数
      返回:
      一个随机值,正态分布的均值和标准差
    • nextPoisson

      public int nextPoisson(double mean)
      返回具有给定均值的泊松分布的偏差。
      参数:
      mean - 期望值
      返回:
      泊松偏差
      抛出:
      MathIllegalArgumentException - 如果均值不是严格正数
    • nextDeviate

      public double nextDeviate(RealDistribution dist)
      返回给定分布的随机偏差。
      参数:
      dist - 要从中抽样的分布
      返回:
      遵循给定分布的随机值
    • nextDeviates

      public double[] nextDeviates(RealDistribution dist, int size)
      返回给定分布的随机偏差数组。
      参数:
      dist - 要从中抽样的分布
      size - 要返回的值的数量
      返回:
      一个包含size个值的数组,遵循给定分布
    • nextDeviate

      public int nextDeviate(IntegerDistribution dist)
      返回给定分布的随机偏差。
      参数:
      dist - 要从中抽样的分布
      返回:
      遵循给定分布的随机值
    • nextDeviates

      public int[] nextDeviates(IntegerDistribution dist, int size)
      返回一个从给定分布中随机抽取的随机变量数组。
      参数:
      dist - 要从中抽样的分布
      size - 要返回的值的数量
      返回:
      一个包含size个值的数组,遵循给定分布
    • nextInt

      public int nextInt(int lower, int upper)
      返回一个介于下限和上限(包括)之间的均匀分布的随机整数。
      参数:
      lower - 生成值的下限
      upper - 生成值的上限
      返回:
      在给定范围内的随机整数值
      抛出:
      MathIllegalArgumentException - 如果下限不严格小于或等于上限
    • nextLong

      public long nextLong(long lower, long upper) throws MathIllegalArgumentException
      返回一个介于下限和上限(包括)之间的均匀分布的随机长整型整数。
      参数:
      lower - 生成值的下限
      upper - 生成值的上限
      返回:
      在给定范围内的随机长整型整数值
      抛出:
      MathIllegalArgumentException - 如果下限不严格小于或等于上限
    • nextUniform

      public double nextUniform(double lower, double upper)
      返回一个在[下限,上限]范围内均匀分布的双精度值
      参数:
      lower - 下限
      upper - 上限
      返回:
      均匀分布的随机变量
      抛出:
      MathIllegalArgumentException - 如果上限小于或等于下限
    • nextZipf

      public int nextZipf(int numberOfElements, double exponent)
      返回一个具有给定参数的Zipf分布的整数值。
      参数:
      numberOfElements - 分布的元素数量
      exponent - 分布的指数
      返回:
      随机的Zipf值
    • nextHexString

      public String nextHexString(int len) throws MathIllegalArgumentException
      生成长度为len的十六进制字符随机字符串。

      生成的字符串是随机的,但不具有密码学安全性。

      算法描述: 十六进制字符串是通过两步过程生成的。

      1. 使用基础Random生成len / 2 + 1个二进制字节
      2. 将每个二进制字节转换为2个十六进制数字
      参数:
      len - 所需字符串长度。
      返回:
      随机字符串。
      抛出:
      MathIllegalArgumentException - 如果len <= 0
    • nextPermutation

      public int[] nextPermutation(int n, int k) throws MathIllegalArgumentException
      从整数0, ..., n - 1(包括)中随机选择且不重复地选择k个元素,生成一个整数数组。

      生成的数组表示从n个元素中取k个元素的排列。

      此方法调用MathArrays.shuffle以创建自然数集合{ 0, 1, ..., n - 1 }的随机洗牌。
      参数:
      n - 排列的定义域
      k - 排列的大小
      返回:
      一个包含k个元素的随机k-排列,作为整数数组
      抛出:
      MathIllegalArgumentException - 如果k > n
      MathIllegalArgumentException - 如果k <= 0
    • nextSample

      public Object[] nextSample(Collection<?> c, int k) throws MathIllegalArgumentException
      从集合c中随机选择k个对象,返回对象数组。

      c中进行抽样时不会重复;但如果c包含相同的对象,则样本可能包含重复。如果c的所有元素都不同,则生成的对象数组表示c元素的大小为k简单随机样本

      此方法调用nextPermutation(c.size(), k)以对集合进行抽样。

      参数:
      c - 要抽样的集合
      k - 样本的大小
      返回:
      c中随机抽取的k个元素的样本
      抛出:
      MathIllegalArgumentException - 如果k > c.size()
      MathIllegalArgumentException - 如果k <= 0
    • nextSample

      public double[] nextSample(double[] a, int k) throws MathIllegalArgumentException
      从双精度数组a中随机选择k个双精度值,返回双精度值数组。

      a中进行抽样时不会重复;但如果a包含相同的对象,则样本可能包含重复。如果a的所有元素都不同,则生成的对象数组表示a元素的大小为k简单随机样本

      参数:
      a - 要抽样的数组
      k - 样本的大小
      返回:
      a中随机抽取的k个元素的样本
      抛出:
      MathIllegalArgumentException - 如果k > c.size()
      MathIllegalArgumentException - 如果k <= 0
    • nextSampleWithReplacement

      public int[] nextSampleWithReplacement(int sampleSize, double[] weights)
      使用权重作为概率,从{0, 1, ... , weights.length - 1}中生成大小为sampleSize的随机样本。

      对于0 < i < weights.length,选择i(在任何抽样中)的概率为weights[i]。如果需要,将权重数组归一化为总和为1,以便weights[i]是概率且数组总和为1。

      权重可以为0,但不能为负数、无穷大或NaN。至少有一个权重必须为正数。

      参数:
      sampleSize - 要生成的样本大小
      weights - 概率抽样权重
      返回:
      介于0和weights.length - 1之间的整数数组
      抛出:
      MathIllegalArgumentException - 如果权重包含负数、NaN或无穷大值,或仅为0,或sampleSize小于0
    • setSeed

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

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

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

      public void setSeed(int[] seed)
      使用int数组种子设置基础随机数生成器的种子。

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

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

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

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

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

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

      public void nextBytes(byte[] bytes, int offset, int length)
      生成随机字节并将它们放入用户提供的字节数组中。
      指定者:
      nextBytes 在接口中 RandomGenerator
      参数:
      bytes - 非空字节数组,用于放置随机字节
      offset - 将生成的字节插入数组的起始索引
      length - 要生成的字节数
    • nextInt

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

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

      指定者:
      nextInt 在接口中 RandomGenerator
      返回:
      此随机数生成器序列中的下一个伪随机、均匀分布的int
    • nextInt

      public int nextInt(int n)
      返回从此随机数生成器序列中绘制的介于0(包括)和指定值(不包括)之间的伪随机、均匀分布的int值。
      指定者:
      nextInt 在接口中 RandomGenerator
      参数:
      n - 要返回的随机数的上限。必须是正数。
      返回:
      一个伪随机、均匀分布的int值,介于0(包括)和n(不包括)之间。
    • nextLong

      public long nextLong()
      返回此随机数生成器序列中的下一个伪随机、均匀分布的long值。所有264个可能的long值应以(大致)相等的概率产生。
      指定者:
      nextLong 在接口中 RandomGenerator
      返回:
      此随机数生成器序列中的下一个伪随机、均匀分布的long
    • nextLong

      public long nextLong(long n)
      返回此随机数生成器序列中的下一个伪随机、均匀分布的int值,介于0(包括)和指定值(不包括)之间。
      指定者:
      nextLong 在接口中 RandomGenerator
      参数:
      n - 要返回的随机数的上限。必须是正数。
      返回:
      一个伪随机、均匀分布的int值,介于0(包括)和n(不包括)之间。
    • nextBoolean

      public boolean nextBoolean()
      返回此随机数生成器序列中的下一个伪随机、均匀分布的boolean值。
      指定者:
      nextBoolean 在接口中 RandomGenerator
      返回:
      此随机数生成器序列中的下一个伪随机、均匀分布的boolean
    • nextFloat

      public float nextFloat()
      返回此随机数生成器序列中的下一个伪随机、均匀分布的float值,介于0.01.0之间。
      指定者:
      nextFloat 在接口中 RandomGenerator
      返回:
      此随机数生成器序列中的下一个伪随机、均匀分布的float值,介于0.01.0之间
    • nextDouble

      public double nextDouble()
      返回此随机数生成器序列中的下一个伪随机、均匀分布的double值,介于0.01.0之间。
      指定者:
      nextDouble 在接口中 RandomGenerator
      返回:
      此随机数生成器序列中的下一个伪随机、均匀分布的double值,介于0.01.0之间
    • nextGaussian

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