BlockRandom[expr]
expr の評価で使用したSeedRandom,RandomIntegerおよび関連関数が続く擬似乱数系列に影響しないように,すべての擬似乱数発生アルゴリズムを局所化して expr を評価する.
BlockRandom
BlockRandom[expr]
expr の評価で使用したSeedRandom,RandomIntegerおよび関連関数が続く擬似乱数系列に影響しないように,すべての擬似乱数発生アルゴリズムを局所化して expr を評価する.
詳細とオプション
- 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はWolfram言語内のすべての擬似乱数発生アルゴリズムに使うことができる:
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 Language. 2007. "BlockRandom." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/BlockRandom.html.
APA
Wolfram Language. (2007). BlockRandom. Wolfram Language & System Documentation Center. Retrieved from 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: 15-October-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: 15-October-2026]}