C/Visual C - Ayuda con rand

 
Vista:

Ayuda con rand

Publicado por Tom (15 intervenciones) el 20/03/2004 14:47:33
Wenas, alguien sabe como limitar el intervalo de los numeros aleatorios generados por rand() ????
Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con rand

Publicado por Jose (4 intervenciones) el 20/03/2004 15:16:36
Hola!

Antes que nada debemos saber cual es el intervalo del rand, el cual genera valores entre 0 y 32767.

Ahora bien, tu pregunta es cómo limitar intervalos. Para ello debemos hacer los siguientes pasos:

1) Calcular el valor del rand() normalizado (entre 0 y 1):
float rand_norm=(float)num/32767;

2) Encontrar la diferencia entre tu intervalo a limitar.
p.ej. Si tu intervalo es: [3,7], la diferencia es 4 (7-3)

*Llamaremos al número mínimo de intervalo (el 3) min. Y a la diferencia entre máximo y mínimo: dif.

3) Ya puedes calcular el nuevo random dentro de tu intervalo de la siguiente manera (suponemos que quieres otener valores enteros):
int nuevo_ran= min + rand_norm * dif

Y esto es todo. Espero haber entendido tu pregunta y si es así, haber resuelto.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con rand

Publicado por Jose (4 intervenciones) el 20/03/2004 15:18:36
Perdón!

Donde puse:

float rand_norm=(float)num/32767;

Quise poner:

1) Calcular el valor del rand() normalizado (entre 0 y 1):
float rand_norm=(float)rand()/32767;

Ha sido una confusión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:Ayuda con rand

Publicado por zzzzzz (318 intervenciones) el 20/03/2004 20:15:02
Hola! Si lo quieres es limitar los numeros entre 0 y otro valor ejemplo entre 0 y 50 la manera mas facil es esta, con ramdom o con rand es mas o menos lo mismo:

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
int i;

randomize();
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf(" con rand %d \n", rand() % 50);
for (i=0; i<10; i++)
printf ("con random %d \n", random(50));
getch();
return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar