double entropy() const noexcept;
概要
エントロピー(乱数の乱雑さの度合い)を取得する。
戻り値
実装が非決定論的な乱数を持っておらず、擬似乱数を使用する場合には乱雑さがないため、0.0
が返る。
そうでなければ、min()
からlog2(max() + 1)
の範囲において、operator()
によって返される乱数の乱雑さの度合いを返す。
備考
- GCC (libstdc++) は、バージョン7系までは常に
0.0
を返す。8.1からは、GNU/Linux環境でカーネルのエントロピー数にアクセスできればその値を返す - Clang (libc++) は、常に
0.0
を返す。 - Visual C++は、常に
32
を返す。 - Boost.Randomの
random_device::entropy()
は常に10
を返す。
例
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
double result = rd.entropy();
std::cout << result << std::endl;
}
出力
0
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.7.2 ✅
- ICC: ??
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅, 2015 ✅, 2017 ✅