BlockRandom[expr]
用所有局部的伪随机生成程序计算 expr ,因而在 expr 的计算中使用 SeedRandom、RandomInteger 及相关函数不会影响随后的伪随机序列.
BlockRandom
BlockRandom[expr]
用所有局部的伪随机生成程序计算 expr ,因而在 expr 的计算中使用 SeedRandom、RandomInteger 及相关函数不会影响随后的伪随机序列.
更多信息和选项
- BlockRandom[expr] 在计算 expr 之前有效地保存所有伪随机生成程序的状态,并在随后恢复它们.
- BlockRandom[expr] 给出的结果与仅计算 expr 的结果相同,尽管它可能影响对于随后的表达式获得的值.
- BlockRandom[expr,RandomSeeding->seeding] 指定随机生成器在运算 expr 之前使用指定的 seeding 作为种子.
- BlockRandom 具有属性 HoldFirst.
- Wolfram 语言中许多内部函数使用 BlockRandom.
范例
打开所有单元 关闭所有单元基本范例 (2)
用 BlockRandom 使伪随机生成程序的使用局部化:
{RandomReal[], BlockRandom[RandomReal[]], RandomReal[], RandomReal[]}用 BlockRandom 防止随机算法的一种用法对其它用法产生影响:
Table[Total[RandomInteger[1, 100]], {20}]Table[BlockRandom[Total[RandomInteger[1, 100]]], {20}]范围 (1)
BlockRandom 可以和 Mathematica 中的所有伪随机生成程序连用:
Table[BlockRandom[RandomReal[1, 2]], {3}]Table[BlockRandom[RandomChoice[{a, b, c}, 5]], {3}]选项 (3)
RandomSeeding (3)
Table[BlockRandom[RandomInteger[9, 10]], {2}]Table[BlockRandom[RandomInteger[9, 10], RandomSeeding -> 1234], {2}]当生成器用于 BlockRandom 外面时,没有种子的结果被改变:
RandomInteger[9, 10]Table[BlockRandom[RandomInteger[9, 10]], {2}]Table[BlockRandom[RandomInteger[9, 10], RandomSeeding -> 1234], {2}]用 RandomGeneratorState 对象同时指定种子和方法:
BlockRandom[RandomReal[1, 5], RandomSeeding -> RandomGeneratorState[{"ExtendedCA", {80, 4, 0}},
{{NumericArray[{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, "UnsignedInteger64"],
0, 20, 20}, {RawArray["UnsignedInteger64", {8402553920425805686, 9934563772124633544,
13 ... 91188148046, 1589259630949761215,
10047890358231901395, 5864488619226313396, 17324547311914965925, 9027643525916071240,
2022314520320920354, 9575528438213517111}], 4, 0}}, NumericArray[{6155169294560358013, 0},
"UnsignedInteger64"]]]使用 Automatic 的种子指定方式每次得到不同结果:
Table[BlockRandom[RandomInteger[9, 10]], {4}]Table[BlockRandom[RandomInteger[9, 10], RandomSeeding -> Automatic], {4}]应用 (2)
SeedRandom[1234];RandomReal[1, 5]SeedRandom[1234];BlockRandom[4.0 Mean[Table[Boole[Norm[RandomReal[1, 2]] < 1], {10 ^ 4}]]]BlockRandom 防止其它的随机序列受影响:
RandomReal[1, 5]Table[BlockRandom[RandomReal[WorkingPrecision -> p]], {p, 10}]属性和关系 (1)
BlockRandom 实际上重设随机起点到以前的值:
{SeedRandom[123];RandomReal[], SeedRandom[123];RandomReal[]}{SeedRandom[123];BlockRandom[RandomReal[]], RandomReal[]}文本
Wolfram Research (2007),BlockRandom,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BlockRandom.html (更新于 2017 年).
CMS
Wolfram 语言. 2007. "BlockRandom." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2017. https://reference.wolfram.com/language/ref/BlockRandom.html.
APA
Wolfram 语言. (2007). BlockRandom. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/BlockRandom.html 年
BibTeX
@misc{reference.wolfram_2026_blockrandom, author="Wolfram Research", title="{BlockRandom}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/BlockRandom.html}", note=[Accessed: 09-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_blockrandom, organization={Wolfram Research}, title={BlockRandom}, year={2017}, url={https://reference.wolfram.com/language/ref/BlockRandom.html}, note=[Accessed: 09-August-2026]}