Me da una función rand5() que genera, con una distribución uniforme, un entero aleatorio en el intervalo cerrado [1,5]. ¿Cómo puedo usar rand5(), y nada más, para crear una función rand7(), que genera enteros en [1,7] (de nuevo, uniformemente distribuidos)?Modificar el rango de un generador de números aleatorios uniforme
- busqué stackoverflow, y encontró muchas preguntas similares, pero no exactamente como éste.
- Mi primer intento fue rand5() + 0.5 * rand5() + 0.5 * rand5(). Pero esto no generará números enteros del 1 al 7 con probabilidad uniforme. Cualquier respuesta, o enlaces a respuestas, son bienvenidos.
Nota adicional: en general, resumiendo rand5() no funcionará. Al sumar más de rand5(), comenzaremos a desviarnos de la distribución uniforme, y comenzaremos a aproximarnos a una distribución normal. –
Parece un duplicado para http://stackoverflow.com/questions/10464360/use-rand5-to-generate-rand7-with-the-same-probability – Mathias
@Mathias, no, estas no son la misma pregunta, una tu enlace es sobre no poder generar números pseudoaleatorios usando C# – unkulunkulu