🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #15352

RE: N�meros aleatorios

#15352
From: Wunslov
Date: Mon, 10 Jul 2000 00:00
64 lines
2620 bytes
Una vez que optienes los numeros aleatorios con la funcion rand, del modo:

numero = rand() % (modulo + 1);

Y de ejecutar cientos de veces el programa veras que siempre son los mismos
numeros lo qe es una putada pq no son aleatorios jeje para evitar esto debes
inicializar la semilla para ello normalmente se usa el tiempo del sistema,
la funcion seria:
-----------------------------------------

#include <sys/time.h>

/**
 M�todo que inicializa la semilla del RANDOM
*/
void InicializarRandom() {

  static struct timezone* tz = NULL;
  static struct timeval* tv = NULL;
  double semilla = 0;

  tz = new (struct timezone)[sizeof(struct timezone)];
  tv = new (struct timeval)[sizeof(struct timeval)];

  if(gettimeofday(tv, tz) == 0)
    semilla = tv->tv_sec + tv->tv_usec * 100;

  srand((unsigned int)semilla);
}
---------------------------------

NOTA: solo debes ejecutar la funcion una vez, normalmente al entrar el
programa, luego los numeros generados seran 'aleatorios' y digo 'aleatorios'
porque el ordenador los genera a traves de una funcion matematica y no son
realmente aleatorios.... problemas matematicos de esos jejeje

--
Salu2 de Wunslov

  @@@@@ Direcciones:
  |  o|  E-Mail: fmmm@alu.ua.es
  |   _\ Web en Inet: http://welcome.to/a02
  |  _|
  | /

"Software is like sex. It's better when it's free." -= Linus Torvalds

rvm <rvm@XXlinuxfan.com> escribi� en el mensaje de noticias
E_H95.144$pA2.4012@m2newsread.uni2.es...
> Seguramente esta pregunta ser� muy b�sica, pero como no caigo ahora en
> la soluci�n (y adem�s se me dan mal las matem�ticas) pues mejor lo
> pregunto:
> Seg�n las p�ginas info veo que para obtener n�meros aleatorios hay que
> usar la funci�n rand pero esta funci�n devuelve n�meros entre 0 y un
> n�mero muy grande �y si yo quiero que me d� un n�mero entre 0 y 100 o
> entre 0 y 10 c�mo lo hago?
>
> --
> Ricardo Villalba
> rvm@XXlinuxfan.com (quita las XX)
> http://members.xoom.com/rvmsoft
> http://members.xoom.com/rvmsoft/linux
> Linux registered user 90754
>
Technical Details
Message-ID: <8kcsjq$eqor10@SGI3651ef0.iddeo.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <E_H95.144$pA2.4012@m2newsread.uni2.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,9e48787536054c7
X-Google-Attributes: gidf86c8,public
From: "Wunslov" <wunslov@retemail.es>
Subject: RE: N�meros aleatorios
Date: 2000/07/10
Message-ID: <8kcsjq$eqor10@SGI3651ef0.iddeo.es>
X-Deja-AN: 644665607
References: <E_H95.144$pA2.4012@m2newsread.uni2.es>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Organization: Iddeo - Retevisi�n
X-MSMail-Priority: Normal
Newsgroups: es.comp.os.linux.programacion