Esta plantilla en C++ se usa para convertir el valor generado por g en un valor de punto flotante en el rango [0, 1) preservando las propiedades de uniformidad de las secuencias generadas con g. Para generar suficiente entropía, generate_canonical() llamará a g() exactamente ‘k’ veces donde,
Sintaxis:
template ( class RealType, size_t bits, class URNG ) RealType generate_canonical (URNG& g);
Parámetros de la plantilla: esta plantilla acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- RealType: La función devuelve un valor de tipo coma flotante.
- bits: Número máximo de bits en la mantisa.
- URNG: Una clase generadora de números aleatorios uniforme.
Parámetros: La función generate_canonical() acepta un único parámetro g que se utiliza como objeto generador de números aleatorios uniformes. Se utiliza para adquirir entropía.
Valor devuelto: esta función devuelve un valor de punto flotante en el rango [0, 1).
Los siguientes programas ilustran el
programa de plantilla de C++ anterior:
// C++ program to illustrate generate_canonical() // function. #include <bits/stdc++.h> 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<double, numeric_limits<double>::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
Referencia: http://www.cplusplus.com/reference/random/generate_canonical/
Publicación traducida automáticamente
Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA