Mantén la atención ya que en este enunciado vas a hallar el hallazgo que buscas.Esta noticia fue analizado por nuestros especialistas para asegurar la calidad y exactitud de nuestro post.
Solución:
Hay muchos métodos para generar números distribuidos en Gauss a partir de un RNG regular.
La transformada de Box-Muller se usa comúnmente. Produce correctamente valores con una distribución normal. Las matemáticas son fáciles. Generas dos números aleatorios (uniformes), y al aplicarles una fórmula, obtienes dos números aleatorios normalmente distribuidos. Devuelva uno y guarde el otro para la próxima solicitud de un número aleatorio.
C++11
Ofertas de C++11 std::normal_distribution
que es la forma en que iría hoy.
C o C++ anterior
Aquí hay algunas soluciones en orden de complejidad ascendente:
-
Sume 12 números aleatorios uniformes del 0 al 1 y reste 6. Esto coincidirá con la media y la desviación estándar de una variable normal. Un inconveniente obvio es que el rango está limitado a ±6, a diferencia de un true distribución normal.
-
La transformada de Box-Muller. Esto se menciona arriba y es relativamente simple de implementar. Sin embargo, si necesita muestras muy precisas, tenga en cuenta que la transformada Box-Muller combinada con algunos generadores uniformes sufre una anomalía llamada Efecto Neave.1.
-
Para mayor precisión, sugiero dibujar uniformes y aplicar la distribución normal acumulativa inversa para llegar a variables normalmente distribuidas. Aquí hay un muy buen algoritmo para distribuciones normales acumulativas inversas.
1. HR Neave, “Sobre el uso de la transformación Box-Muller con generadores de números pseudoaleatorios congruentes multiplicativos”, Applied Statistics, 22, 92-97, 1973
Un método rápido y fácil es simplemente sumar una cantidad de números aleatorios distribuidos uniformemente y tomar su promedio. Consulte el Teorema del límite central para obtener una explicación completa de por qué funciona.
Te mostramos las comentarios y valoraciones de los lectores
Tienes la opción de añadir valor a nuestro contenido dando tu experiencia en las interpretaciones.