- random[meta header]
- std[meta namespace]
- type-alias[meta id-type]
- cpp11[meta cpp]
namespace std {
using default_random_engine = implementation-defined;
}
擬似乱数生成エンジンには、パフォーマンス、サイズ、品質といった、多くの特性による選択肢がある。
しかし、非専門家がこれらを正しく使い分けるのは難しいだろう。
default_random_engine
は、非専門用途で十分な品質の擬似乱数生成エンジンを別名定義したものである。
以下、確認できた環境ごとのエンジンである。バージョンによって変更される可能性があるため参考までに。
ライブラリ | エンジン |
---|---|
Visual C++ 2012 | mt19937 |
GCC 4.8(libstdc++) | minstd_rand0 |
Clang 3.4(libc++) | minstd_rand |
#include <iostream>
#include <random>
int main()
{
std::random_device seed_gen;
std::default_random_engine engine(seed_gen());
std::uniform_int_distribution<> dist(0, 3);
for (int i = 0; i < 10; ++i) {
int result = dist(engine);
std::cout << result << std::endl;
}
}
- std::default_random_engine[color ff0000]
- std::uniform_int_distribution[link uniform_int_distribution.md]
- dist(engine)[link uniform_int_distribution/op_call.md]
1
3
3
2
0
1
0
2
0
3