¿Generar numeros al 100% al azar?

Iniciado por meaf75, 13 Agosto 2016, 20:02 PM

0 Miembros y 1 Visitante están viendo este tema.

meaf75

¿Como puedo hacer para que se generen numeros al azar una y otra vez?, he estado intentandolo pero siempre se terminan repitiendo los numeros y la posicion, he aqui el codigo:
#include <conio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;

int main(){

int L1,L2,L,num1,masal,num2,num,numM=1,a,pos;
char op;

do{
    system("cls");
    L1=50+rand()%150; L2=50+rand()%150;
    L=L1+L2;

    cout<<"Limite escogido: "<<L<<"\n";


    for(a=1;a<=L;a++){
    masal=rand()%10+1; num1=rand()%350+masal; num2=rand()%350+masal;
    num=num1+num2;
    cout<<a<<". "<<num<<"\n";

    if(num>numM){
        numM=num;
        pos=a;
    }
}

cout<<"El numero mayor esta en la posicion "<<pos<<" y es el: "<<numM<<"\n";

cout<<"\n¿Desea repetir el ejercicio?\nSi (s)\nNo (Pulsar cualquier otra tecla)\n";
cin>>op;

  }while(op=='s');

   return 0;
}

engel lex

primero... en pc no hay tal cosa como numeros 100% al azar... es un problema que lleva años dicutiendose... lo que buscas es que se generen numeros pseudo-aleatorios diferentes para cada caso...

el problema es que rand siempre va a comenzar en el mismo punto... y como esto no es más que una aplicación simple y no requiere más profundidad ni analisis, puedes usar srand() que te permite inicializar los numeros de rand desde un punto basado en el tiempo del PC

aqui un ejemplo y su uso

http://www.cplusplus.com/reference/cstdlib/srand/

/* srand example */
#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

int main ()
{
 printf ("Primero Numero: %d\n", rand()%100);
 srand (time(NULL));
 printf ("Numero pseudo-aleatorio: %d\n", rand()%100);
 srand (1);
 printf ("Nuevamente el primer numero: %d\n", rand()%100);

 return 0;
}
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MessageBoxA

#2
tienes que llamar a la funcion srand()

Código (cpp) [Seleccionar]
int hora = time(NULL);
    // semilla de rand();  
srand(hora);  //almacenamos el valor del reloj del sistema esto con la intencion de poder
                  //generar numeros aleatorios
int n=0;  
int m=0;
n = rand()%100; //multiplo
m = rand()%100;


antes  del for
coloca
Código (cpp) [Seleccionar]
numM=1;
SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++