最終更新日時:
が更新

履歴 編集

type-alias
<random>

std::default_random_engine(C++11)

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;
  }
}

出力例

1
3
3
2
0
1
0
2
0
3

参照