Bueno todos sabemos para lo que sirve rand() y srand() y que el RAND_MAX vale 0x7FFFU (32767)
Vamos que el mayor número pseudo-aleatorio que nos puede retornar un programa que use rand() es 32767..
Pero me pudo la curiosidad.
#include <iostream>
#include <cstdlib> //tiene la definicion de la funcion RAND (random)
using namespace std;
int main ()
{
int cantidad;
cout << "Cuantos numeros quiere generar?" << endl;
cin >> cantidad;
for (int contador =1 ; contador <= cantidad ; contador++)
{
cout << "\n" <<(rand()%50000+40000);
}
return 0 ;
}
Y si, como no hay semilla pues como que siempre saldran los mismos numeros, pero todos ellos son mayores de 32767 yo me esperaba algun error algo raro, pero veo que eso del valor máximo se lo salta.
Saludos y lo corro desde Windows.
Ahora lo probare desde GNU/Linux
No entendí muy bien :p
Osea el número máximo que puedes obtener es 32767, hasta ahí bien pero te asombras porque le salen números mayores?
Aquí no le estas sumando un cantidad grande, entonces como te va a dar menos de 32767...
cout << "\n" <<(rand()%50000+40000);
Si estoy mal me corriges hasta ahora comienzo a aprender.
Saludos...
La verdad sí XD
Bueno entonces... esa linea saca un número al random creo bien hasta aquí? luego le saca el residuo del número que le dio contra 50000 como ese número no puede ser tan grande da el mismo número y al final le suma 40k
Si hace eso?
Cita de: Castiblanco en 31 Agosto 2010, 14:49 PM
La verdad sí XD
Bueno entonces... esa linea saca un número al random creo bien hasta aquí? luego le saca el residuo del número que le dio contra 50000 como ese número no puede ser tan grande da el mismo número y al final le suma 40k
Si hace eso?
Efectivamente hace eso.
Segun veo es una confusión nada mas. Ya que rand() como debe ser genera numeros hasta 32767, pero al final le esta sumando los 40000, lo cual es una operacion aparte. En fin, espero que sea eso :S
Yo igual. pero como Lord R.N.A. habla con tanta seguridad y no se siento que me dice que no es verdad, me la pase pensando en el bus si estaba en lo cierto y no vi que estuviera cometiendo errores :p
Saludos...
Ademas de lo que dijo rob1104, cabe destacar que la constante RAND_MAX depende de la plataforma.
He borrado y reportado algunos mensajes. Si no saben comportarse por favor, no posteen.
Muy bien, gracias.
Saludos.