SoloCodigo
Programación General => C/C++ => Mensaje iniciado 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:
-
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
-
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;
}
-
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;
}
-
gracias X Todo... B)
-
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.
-
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