¿Debo usar un motor aleatorio sembrado desde std :: random_device o usar std :: random_device cada vez?

Tengo una clase que contiene dos fuentes de aleatoriedad.

std::random_device rd;
std::mt19937 random_engine;

Sembré elstd::mt19937 con una llamada astd::random_device. Si quiero generar un número y no me importa la repetibilidad, debo llamarrd() orandom_engine()?

En mi caso particular, estoy seguro de que ambos funcionarán bien, porque esto se llamará en algún código de red en el que el rendimiento no es importante, y los resultados no son especialmente sensibles. Sin embargo, estoy interesado en algunas "reglas de oro" sobre cuándo usar la entropía de hardware y cuándo usar números pseudoaleatorios.

Actualmente solo usostd::random_device sembrar mistd::mt19937 motor, y cualquier generación de números aleatorios que necesite para mi programa, uso elstd::mt19937 motor.

edición: aquí hay una explicación para exactamente lo que estoy usando este ejemplo particular para:

Esto es para un programa de juego. Este juego en particular le permite al usuario personalizar su "equipo" antes de comenzar una ronda contra un oponente. Parte de configurar una batalla implica enviar un equipo al servidor. Mi programa tiene varios equipos y utiliza el número aleatorio para determinar qué equipo cargar. Cada nueva batalla hace un llamado astd::random_device Para sembrar el generador de números pseudoaleatorios. Registro el estado inicial de la batalla, que incluye este equipo que seleccioné al azar y la semilla inicial.

El número aleatorio en particular que estoy preguntando en esta pregunta es para la selección de equipos al azar (donde es beneficioso que el oponente no sepa de antemano qué equipo estoy usando, pero no es crítico para la misión), sino qué hago. Realmente estoy buscando es una regla de oro. ¿Está bien usar siemprestd::random_device ¿Si no necesito la repetibilidad de mis números, o hay un riesgo real de usar la entropía más rápido de lo que se puede recolectar?

Respuestas a la pregunta(6)

Su respuesta a la pregunta