📜  C++中的generate_canonical函数模板

📅  最后修改于: 2021-05-30 03:30:18             🧑  作者: Mango

C++中的此模板用于将g生成的值转换为[0,1)范围内的浮点值,以保留使用g生成的序列的均匀性。为了产生足够的熵, generate_canonical()会在确切的“ k”次调用g(),

 k = max(1, \lceil \frac{b}{log_2 R} \rceil)

句法:

template ( class RealType, size_t bits, class URNG )
RealType generate_canonical (URNG& g);

模板参数:该模板接受上述和以下所述的三个参数:

  • RealType:函数返回浮点类型的值。
  • 位:尾数的最大位数。
  • URNG:统一的随机数生成器类。

参数: generate_canonical()函数接受用作统一随机数生成器对象的单个参数g 。它用于获取熵。

返回值:该函数返回范围为[0,1)的浮点值。

下面的程序说明了上面的C++模板
程序:

// C++ program to illustrate generate_canonical()
// function.
#include 
using namespace std;
  
int main()
{
    // Obtain a root from the system clock:
    unsigned root = chrono::system_clock::now().time_since_epoch().count();
  
    // Random number engine class
    // that generates pseudo-random numbers
    default_random_engine generator(root);
    double can_val = generate_canonical::digits>(generator);
  
    // Print the random canonical value
    // It will display different value everytime
    cout << "Random canonical value: " << can_val;
  
    return 0;
}
输出:
Random canonical value: 0.0281975

参考: http : //www.cplusplus.com/reference/random/generate_canonical/

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”