C++乱数の覚書
引用 ChatGPT
時間的基準はXorShift32を基準としsは疑似タイムである。
アルゴリズム別:相対速度比較(更新版)
アルゴリズム | 状態サイズ | 周期 | 統計品質 | 実行時間(相対) | 備考 |
---|---|---|---|---|---|
XorShift32 | 32ビット | 2³² - 1 | 低 | 1.0 s (基準) | 最速、品質は低い |
XorShift32 + カウンタ再シード | 32ビット | 擬似無限 | やや改善 | 1.3 ~ 1.5 s | 周期の突破、統計特性わずかに向上 |
XorShift128+ | 128ビット | 2¹²⁸ - 1 | 中 | 1.5 ~ 2.0 s | 64bitアーキテクチャに適した構造 |
Xoroshiro128++ | 128ビット | 2¹²⁸ - 1 | 高 | 2.0 ~ 2.5 s | 推奨アルゴリズムの一つ、実装も比較的簡単 |
Xoshiro256++ | 256ビット | 2²⁵⁶ - 1 | 非常に高 | 2.5 ~ 3.0 s | 64bit向け、現在推奨される高性能PRNG |
Xoshiro512++ | 512ビット | 2⁵¹² - 1 | 超高 | 3.5 ~ 4.0 s | 高精度・高周期用途に適す、状態サイズが大きいため遅め |
std::mt19937 | 19937ビット | 2¹⁹⁹³⁷ - 1 | 非常に高 | 10 ~ 15 s | 非常に長い周期、高品質、速度は遅い(ルックアップテーブル型) |