SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Bgirl en Viernes 28 de Mayo de 2004, 15:36

Título: Numeros Aleatorios
Publicado por: Bgirl en Viernes 28 de Mayo de 2004, 15:36
Como puedo generar numeros aleatorios sin utilizar el antiguo procedimiento propuesto por jhon neuman, llamado el centrto del cuadrado????

Salu2 :hola:
Título: Re: Numeros Aleatorios
Publicado por: Ruben3d en Viernes 28 de Mayo de 2004, 16:10
Hola.

Construye un generador congruente lineal. Aqui puedes encontrar información:
Linear Congruent Method (http://www.krellinst.org/UCES/archive/modules/monte/node2.html)

Un saludo.

Ruben3d
Título: Re: Numeros Aleatorios
Publicado por: Noel Solw en Viernes 28 de Mayo de 2004, 17:00
Puedes utilizar el sistema de Borland C y C++.
Este es un programita en C++, ver 4.5, que genera 20 numeros aleatorios, entre o y 99, incluidos.


#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

void main()
{
   randomize(); // iniciacion del generador aleatorio
   for(int i = 1;i <= 20;i++)
      cout << setw(10) << i << " : " << random(100) << endl;
}
Título: Re: Numeros Aleatorios
Publicado por: DEKAN en Viernes 28 de Mayo de 2004, 18:53
Otra opcion para generar numeros aleatorios imprime 20 veces numeros aleatorios entre 0 y 1000, utiliza time(NULL) porque aveces el rand no es suficiente y te puede generar los mismos numeros cuando los vuelves a generar por ejemplo si lo metes en un do -while a la segunda vez te puede generar los mismos numeros si utilizas solamente el rand, porque aveces se quedan en memoria,por eso con esta instruccion "time(NULL)" siempre te generara numeros diferentes, ya que se guia por el reloj de la compu. Espero te sea de utilidad  :P


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

void main() {

int variable=0;

//para que genere numeros siempre diferentes, ojo tiene que estar fuera del for
//porque si no te genera error!

srand(time(NULL));  

for(int i=0; i<=20; i++) {  //contador para que lo haga 20 veces

//ejemplo quiero numeros aleatorios hasta el numero 1000

variable=rand()%1000;

cout<<variable; //se imprime 20 veces un numero diferente

}
return 0;
}
Título: Re: Numeros Aleatorios
Publicado por: Bgirl en Miércoles 2 de Junio de 2004, 22:23
gracias X Todo... B)
Título: Re: Numeros Aleatorios
Publicado por: QliX=D! en Jueves 3 de Junio de 2004, 01:15
Pero recorda que los generadores congruenciales lineales son medios flacos, de hecho son lineales, si sabes el numero oanterior podes saber los siguientes.
por ende te diria que trates de usar otro metodo a menos de que sea para alguna prueba, pero si es para lago que tenga que ver con criptografia, olvidalo.
Título: Re: Numeros Aleatorios
Publicado por: Ruben3d en Domingo 6 de Junio de 2004, 20:49
Cita de: "QliX=D!"
por ende te diria que trates de usar otro metodo a menos de que sea para alguna prueba, pero si es para lago que tenga que ver con criptografia, olvidalo.

Y dale, otra vez liado  :lol:

Un saludo.

Ruben3d