Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Números aleatorios siempre iguales.

Estas en el tema de Números aleatorios siempre iguales. en el foro de C/C++ en Foros del Web. Hola. estoy haciendo una animación de un sistema de partículas. Uso Srand y rand para generar las posiciones de las particulas. Hasta aqui bien cada ...
  #1 (permalink)  
Antiguo 30/06/2011, 05:37
 
Fecha de Ingreso: noviembre-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Números aleatorios siempre iguales.

Hola.

estoy haciendo una animación de un sistema de partículas.

Uso Srand y rand para generar las posiciones de las particulas.

Hasta aqui bien cada particula se coloca en una posicion distinta.

Lo que si noto, es que en todas las ejecuciones que haga de la animacion siempre las particulas estan colocadas en la misma posicion.

¿Como hago para que en cada ejecucion tengan posiciones disintas?
  #2 (permalink)  
Antiguo 30/06/2011, 06:15
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 6 meses
Puntos: 73
Respuesta: Números aleatorios siempre iguales.

Puede ser porque inicias el generador de números aleatorios con la misma semilla cada vez, con lo que repites la misma secuencia de números aleatorios. Prueba con una semilla que sea distinta cada vez, por ejemplo una que te calcules a partir de la fecha y hora en que ejecutes el programa.

Otra cuestión que podría afectarte es el rango de valores de los números aleatorios devueltos. Aunque tengas un compilador de 32 bits, puedes llevarte sorpresas. El valor máximo suele estar definido como RAND_MAX en stdlib.h, y si necesitas generar más valores que los indicados en RAND_MAX solamente conseguirás una repetición de los que ya has obtenido.
  #3 (permalink)  
Antiguo 30/06/2011, 07:38
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Números aleatorios siempre iguales.

Una forma de tener una semilla diferente cada vez es utilizando el time :

srand(time(NULL))

asi por cada segundo una semilla diferente
  #4 (permalink)  
Antiguo 03/07/2011, 01:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Números aleatorios siempre iguales.

Me sirvió.

Gracias.
  #5 (permalink)  
Antiguo 03/07/2011, 10:24
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 71
Respuesta: Números aleatorios siempre iguales.

Cita:
Iniciado por Checho360 Ver Mensaje
Una forma de tener una semilla diferente cada vez es utilizando el time :

srand(time(NULL))

asi por cada segundo una semilla diferente
Para usar esto debe de declarar #include "time.h"
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%

Etiquetas: iguales, siempre, aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:02.