最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<random>

# std::random_device::entropy(C++11)

    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 ✅

## 参照

- GCC 8 Release Series - Changes, New Features, and Fixes