Numeros Aleatorio please

_malcom_
04 de Septiembre del 2009
Hola amig@s,

Me gustaria que alguien me dijiera como puedo generar numeros aleatorios... pero no numeros aleatorios cualesquieran sino con una restriccion, allá va...

Necesito que sean del 00 al 36, ambos incluidos, y como veis son de dos cifras, es decir... [ 00, 01,02....14...36 ]

Muchas gracias, espero respuestas ^_^

Saludos a tod@s

_malcom_
04 de Septiembre del 2009
Alejandro_ sigue sin coger la biblioteca <iostream>,

El compilador que uso es "Dev-C++" deberia usar un compilador mas antiguo para que me funcionara?? cual usais vosotros, donde lo consigo, he probado instalar varios como el cygwin y otro (pero no me acuerdo del nombre) y tuve problemas, y hasta el momento el DEV++ me va de coña, lo unico que no voy a poderrrr compilar el numero aleatorio de ninguna forma???? juerrr...

Alguna sugerencia??

Gracias #_# !

carmamezo
04 de Septiembre del 2009
y por qué no quitas la librería iostream.h??? esa librería contiene las funciones cin y cout entre otras, y por lo que veo tu usas printf() y scanf(), por tanto pon en lugar de iostream.h stdio.h.
El código quedaría mas o menos así:

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

void main()
{
int a,x;

srand((unsigned)time(NULL));
while(x<=6)
{
num=randon(37);
//num=rand()%37;
printf("%d",num);
}
}
Si lo que quieres es detener el programa durante unos milisegundos prueba las funciones, Sleep() de windows.h, o sleep() o delay() de dos.h creo.
Espero que ahora te funcione,
un saludo.

noel solw
04 de Septiembre del 2009
si no me equivoco random(37) va a originarte numeros randomales entre 0 y 36

_malcom_
04 de Septiembre del 2009
No me funciona q libreria uso? <math.h> ?¿

He probado estas 3, y nada me da un error de

[Linker error] undefined reference to `random'

el codigo es este:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main ()
{
int i, num;

while (i<=50)
{
num=random(37);
i++;
printf("%d",num);
}
}

Cual es el fallo?

Gracias ^_^

go?
04 de Septiembre del 2009
Prueba esto.
numero=1+rand()%(rango_maximo-rango_minimo+1);


ubuntero07
04 de Septiembre del 2009
Mira yo trabajo en linux y lo he compilado con gcc y g++ y te servira de esta manera

compilado asi :

gcc nombre.c -o nombre.exe
#include <stdio.h>
#include<time.h>
int main()
{

int i, num;

srand((unsigned)time(NULL));
for(i=0; i<10; i++)
{
num=rand()%37;
if (num<10)
printf("nEl numero aleatorio %i es ..: 0%i", i, num);
else
printf("nEl numero aleatorio %i es ..: %i", i, num);
}printf("n");

}

_malcom_
04 de Septiembre del 2009
He probado con las librerias <math.h>, <time.h> y las anteriores, me sigue saliendo el mismo error, quizas sea del compilador?? utilizo el DEV C++ no se que hacer.... el codigo esta bien?

Saludos

arkahe
04 de Septiembre del 2009
yo utilizoel visual c++. y para generar numeros aleatorios utilizo la cabecera stdlib.h , despuesgenero una semilla ,la cual toma el tiempo en milisegundos, entiendes mira es algo asi....


#include «stdlib.h»
#include «time.h»
#include «iostream.h»

void main (void)
{int num;
srand(time(NULL)); // aki generamos la semilla.....

num=rand()%10; // esto me genera numeros del 0 al 9

/* ahora si tu kieres generar el 00, el 01, el 02, tienes ke hacer algo asi*/


if(num«10)
{
/* aki tu puedes hacer ke lo imprima un cero adelante y luedo el numero generado aletoriamente:*/

cout««"0"««num;
/* o si no lo kieres hacer asi de alguna forma tines ke almacenarlo en un char para ke te reconozca el 0 antes del numero pes ok..... bye
}
}

si kires ke te esxpike mas agregame y te puedo ayudar [email protected]


noel solw
04 de Septiembre del 2009
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

int main()
{
randomize();
for(int i = 0;i < 200;i++)
cout << setw(10) << random(37);
cout << endl;
return 0;
}

wakeup
04 de Septiembre del 2009
a mi time(NULL) me da el tiempo en segundos no en milisegundos ¿?¿?

______________
http://www.hhdirecto.net

_malcom_
04 de Septiembre del 2009
Ya suponia que pasaba algo así... pero como puedo solucionarlo? yo quiero generar tantos numeros aleatorios como el usario diga y luego escribirlos en un fichero de texto.

En teoria si el usuario dice una cantidad de 20, se generan 20 numeros, pero a q velocidad?? las maquinas son muy rapidas jejjeje no quiero que salgan los mismos numeros, no seria realista, nose si me explico? hay alguna forma para relentizar un poco los numeros? nose alguna solucion please!????

Numeros del 0 al 36, gracias ^_^

Linko
04 de Septiembre del 2009
La funcion randomize() reinicia la secuencia de numerosa basandose en la hora del sistema usando la hora, minutos, y segundos (sin las milesimas como dije anteriormente) por lo tanto utilizar esa funcion en un tiempo menor a un segundo no tiene sentido porque se reiniciara en el mismo valor de comienzo. Cuando se obtienen sucesivamente valores con rand() estos forzosamente tienen que ser diferentes cada vez, porque se obtiene con un calculo matematico a partir del anterior numero generado.

asegurate de que randomize() solo se ejecuta una vez al comienzo del programa, y luego haz llamadas sucesivas a randon(37) para obtener un valor diferente cada vez, debe funcionar.

_malcom_
04 de Septiembre del 2009
Jurr si quito la libreria iostream, me dice el siguiente error
[Linker error] undefined reference to `randon'

asi que... no se que pasa, si vosotros podeis compilarlo y yo no, esta claro que el problema es mio ¬¬! pero utilizo el DEV-C++ para compilarlo Alejandro, tu tb?? y te deja compilarlo??

Dime O_o!!

_malcom_
04 de Septiembre del 2009
Gggrrr comienzo a desesperarme!! el codigo es este

#include "stdlib.h"
#include "time.h"
#include "iostream.h"

int main ()
{
int num,x;

randomize();
srand(time(NULL));

while(x<=6)
{
num=randon(37);
//num=rand()%37;
printf("%d",num);
}
}

Pero me salta con el mensaje de error
iostream.h: No such file or directory.

Juerrrrr me cago en to, no me digas q no tengo esa libreria??? alguien me la puede pasar?

Gracias ^_#

dina
04 de Septiembre del 2009
Cómo hago para obtener un numero de tres cifras, cuyos digitos sean diferentes?