RandomGeneratorState

RandomGeneratorState[]

给出伪随机发生器的内部状态表示.

更多信息

  • RandomGeneratorState[] 包含生成器方法、方法参数以及(如果适用)完整的内部状态.
  • 可以将 RandomGeneratorState 对象提供给 SeedRandom 以恢复其表示的状态.
  • 某些方法具有的状态只在创建它的内核会话期间持续存在.
  • 可以使用 RandomGeneratorState[]["prop"] 提取下列属性:
  • "CrossSessionPersistent"内部状态是否持续到当前内核会话之后
    "Method"方法名称
    "StateHash"状态的哈希为整数

范例

打开所有单元关闭所有单元

基本范例  (2)

获取伪随机数生成器的当前状态:

使用 RandomGeneratorState 对象播种 BlockRandom

范围  (5)

播种当前的随机生成器并保存结果状态:

生成特定的数字序列:

使用 RandomGeneratorState 对象重新播种:

生成相同的数字序列:

有些方法的状态只能在同一会话中被还原:

SeedRandom 将在同一内核会话中按预期工作:

尝试在新的内核会话中还原这些状态将还原方法,但不会还原状态:

有些方法没有可恢复的状态:

SeedRandom 可以使用这些对方法进行设置,但是不会重现随机序列:

以编程方式提取方法名称:

以编程方式确定状态是否在内核会话结束后仍然存在:

应用  (1)

创建一个 BlockRandom 版本,如果无法恢复当前的随机状态,则拒绝运行:

激活无可恢复状态的随机性生成方法:

由于无法播种此方法,因此 BlockRandom 无法提供可重现的结果:

该函数将拒绝运算:

激活具有可恢复状态的随机性生成方法:

该函数在每次运算结束时恢复随机状态:

因此,以下结果与先前的结果一致:

属性和关系  (5)

如果可用,状态哈希将以整数形式返回:

如果状态哈希值已过期,则将其返回为 None

当前的随机发生器状态存储在 $RandomGeneratorState 中:

SeedRandom 返回 RandomGeneratorState 对象:

RandomGeneratorState 对象可用作 SeedRandom 及相关函数的种子:

SeedRandom 中使用 state

用它来播种 BlockRandom 中的计算:

可能存在的问题  (1)

当将仅会话的 RandomGeneratorState 对象提供给 SeedRandom 时,将创建一个副本:

此副本具有不同的会话哈希:

但是,两个 RandomGeneratorState 对象都产生相同的随机序列:

Wolfram Research (2020),RandomGeneratorState,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RandomGeneratorState.html.

文本

Wolfram Research (2020),RandomGeneratorState,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RandomGeneratorState.html.

CMS

Wolfram 语言. 2020. "RandomGeneratorState." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/RandomGeneratorState.html.

APA

Wolfram 语言. (2020). RandomGeneratorState. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RandomGeneratorState.html 年

BibTeX

@misc{reference.wolfram_2024_randomgeneratorstate, author="Wolfram Research", title="{RandomGeneratorState}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/RandomGeneratorState.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_randomgeneratorstate, organization={Wolfram Research}, title={RandomGeneratorState}, year={2020}, url={https://reference.wolfram.com/language/ref/RandomGeneratorState.html}, note=[Accessed: 21-November-2024 ]}