类 SobolSequenceGenerator
java.lang.Object
org.hipparchus.random.SobolSequenceGenerator
- 所有已实现的接口:
-
RandomVectorGenerator
Sobol序列的实现。
Sobol序列是一种低差异序列,具有这样的特性:对于所有的N值,其子序列(x1,... xN)具有低差异性。它可用于在空间S中生成伪随机点,这些点是均匀分布的。
该实现已经支持高达1000维的空间,方向数是从Stephen Joe和Frances Kuo计算得出的。
生成器支持两种模式:
- 顺序生成点:
nextVector()
- 随机访问序列中的第i个点:
skipTo(int)
- 另请参阅:
-
构造器概要
构造器说明SobolSequenceGenerator
(int dimension) 为给定的空间维度构造一个新的Sobol序列生成器。SobolSequenceGenerator
(int dimension, InputStream is) 为给定的空间维度构造一个新的Sobol序列生成器,并从给定流中加载方向向量。 -
方法概要
修饰符和类型方法说明int
返回下一个将通过调用nextVector()
返回的Sobol序列中的点的索引i。double[]
生成一个随机向量。double[]
skipTo
(int index) 跳转到Sobol序列中的第i个点。
-
构造器详细资料
-
SobolSequenceGenerator
为给定的空间维度构造一个新的Sobol序列生成器。- 参数:
-
dimension
- 空间维度 - 抛出:
-
MathIllegalArgumentException
- 如果空间维度超出允许的范围[1, 1000]
-
SobolSequenceGenerator
public SobolSequenceGenerator(int dimension, InputStream is) throws MathIllegalArgumentException, MathIllegalStateException, IOException 为给定的空间维度构造一个新的Sobol序列生成器,并从给定流中加载方向向量。期望的格式与Stephen Joe和Frances Kuo提供的文件相同。第一行将被忽略,因为假定它只包含列标题。列包括:
- d:维度
- s:原始多项式的次数
- a:表示系数的数字
- m:初始方向数的列表
d s a m_i 2 1 0 1 3 2 1 1 3
输入流必须是包含每行一个有效方向向量的ASCII文本。
- 参数:
-
dimension
- 空间维度 -
is
- 从中读取方向向量的流 - 抛出:
-
MathIllegalArgumentException
- 如果空间维度小于1 -
MathIllegalArgumentException
- 如果空间维度超出输入流中找到的最大维度范围[1, max] -
MathIllegalStateException
- 如果无法成功解析流中的内容 -
IOException
- 如果从输入流读取时发生错误
-
-
方法详细资料
-
nextVector
public double[] nextVector()生成一个随机向量。- 指定者:
-
nextVector
在接口中RandomVectorGenerator
- 返回:
- 作为双精度数组的随机向量。
-
skipTo
跳转到Sobol序列中的第i个点。此操作的时间复杂度为O(1)。
- 参数:
-
index
- 要跳转到的序列中的索引 - 返回:
- Sobol序列中的第i个点
- 抛出:
-
MathIllegalArgumentException
- 如果索引小于0
-
getNextIndex
public int getNextIndex()返回下一个将通过调用nextVector()
返回的Sobol序列中的点的索引i。- 返回:
- 下一个点的索引
-