[C con Clase] Limitar el rango de un numero aleatorio

David fire ddfire en gmail.com
Vie Jun 19 23:48:17 CEST 2009


pregunta, tonta tal vez (ya se no hay preguntas tontas... solo tontos que
preguntan)
para un dado de 0 a 5 no seria mas simple hacer de 0 a 6 y te quedas con la
parte entera?
si sale 0.6 es 0 si sale 2.3 es 2 si sale 5.49 es 5 etc... si sale justo 6
tiras otra vez o es 0 o 5
David

El 19 de junio de 2009 17:56, Programante <programante en gmail.com> escribió:

> Mariano Demarchi escribió:
> > Hola a todos, estaba viendo un mail que enviaron a la lista en donde
> > decian que cuando se quiere limitar el rango en el que se obtienen
> > valores aleatorios, por ejemplo usando rand(), la expresion:
> > valor_generado = valor_inicial + (int)(
> > rand()*(intervalo/(RAND_MAX+1.0)) + 0.5 );
> > genera valores mas aleatorios que:
> > valor_generado = valor_inicial + rand() % intervalo;
> > Para mi no es asi, pero me gustaria saber su opinion y la razon de ésta.
> > Saludos
>
> Porque puede no haber el mismo número de elementos en cada clase.
> Supongamos que RAND_MAX sea 9, es decir, que tienes una función que te
> produce un
> número perfectamente aleatorio de 0 a 9.
>
> Si lo que quieres es obtener un número de 0 a 4, el módulo te sirve
> perfectamente, porque
> todas las clases tienen los mismos elementos.
> En cambio si lo que quieres es un número de 0 a 5 (por ejemplo para
> simular un dado)
> usar el módulo te dará un resultado sesgado:
>
> Tu valor | Valores de la función aleatoria | Frecuencia
> 0 -> 0, 6  20%
> 1-> 1, 7  20%
> 2 -> 2, 8  20%
> 3 -> 3, 9  20%
> 4 -> 4     10%
> 5 -> 5    10%
>
> ¡Cuesta el doble sacar los números altos! (aunque dependiendo del juego,
> igual te interesa, jeje).
>
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
(\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090619/ba313f74/attachment.html>


Más información sobre la lista de distribución Cconclase