在线文档教程
C++
数字 | Numerics

std::random_device::entropy

STD:随机[医]装置:熵

double entropy() const;(since C++11)

获得随机数设备熵的估计,它是0和log之间的浮点值。

2%28max%28%29+1%29%28,等于std::numeric_limits<unsignedint>::digits29%。如果设备具有n个个体概率为P的状态

0,...,P

N-1,设备熵S定义为.

S=-Σn-1

I=0P

ILOG%28P

I%29

确定性随机数发生器%28例如。伪随机引擎%29的熵为零.

例外

noexcept规格:

noexcept

返回值

设备熵的值,如果不适用,则为零。

注记

这个功能在一些标准库中没有完全实现。例如,GNU libstdc++LLVM libc++对于libstdc++,即使设备是不确定的%28,也始终返回零,请参见虫67578%29.相比之下,Microsoft Visual C++实现总是返回32,并且助推,随机返回10。

其中一个实现的示例输出。

二次

#include <iostream> #include <random> int main() { std::random_device rd; std::cout << rd.entropy() << '\n'; }

二次

可能的产出:

二次

32

二次

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cpPreference.com/w/cpp/数值/随机/随机[医]设备/熵