visual una repetir propiedad para numeros numero matriz llenar generar generador digitos decimales con algoritmo aleatorios aleatorio c# c++ random

c# - una - Generación robusta de números aleatorios



propiedad random c# (5)

Estoy buscando un RNG rentable y razonablemente robusto que no use hardware especial. Puede usar métodos matemáticos (Mersenne Twister, etc.), puede "recoger entropía" de la máquina, lo que sea. En Linux / etc tenemos un drand48() que genera 48 bits aleatorios. Me gustaría una función / clase similar para C ++ o C # que pueda generar más de 32 bits de aleatoriedad y que los bits de bajo orden sean tan aleatorios como los de orden alto.

No tiene que ser criptográficamente seguro, pero no debe usar ni basarse en el idioma C rand() o .NET System.Random .

Se agradecerá cualquier código fuente, enlaces a la fuente, etc. En su defecto, ¿qué tipo de RNG debería estar buscando?


C ++ 11 ha adoptado una robusta biblioteca de números aleatorios basada en boost.random. Puede acceder a una cantidad de motores de números aleatorios usando diferentes algoritmos para cumplir con los requisitos de calidad, velocidad o tamaño. Las implementaciones de calidad incluso proporcionarán acceso a cualquier RNG no determinista que su plataforma ofrezca a través de std::random_device .

Además, hay muchos adaptadores para producir distribuciones específicas, eliminando la necesidad de realizar dicha manipulación a mano (algo que a menudo se hace incorrectamente).

#include <random>



Para C ++, Boost.Random es probablemente lo que estás buscando. Tiene soporte para MT (entre muchos otros algoritmos) y puede recopilar entropía a través de la clase nondet_random . ¡Echale un vistazo! :-)


La Biblioteca Científica Gnu (GSL) tiene un amplio conjunto de generadores RN, arnés de prueba, etc. Si estás en Linux, probablemente ya esté disponible en tu sistema.