Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

Números aleatórios dentro de um intervalo

Recommended Posts

gere numeros de 0 a 5, e no resultado adicione 5

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

gere numeros de 0 a 5, e no resultado adicione 5

 

[]s

 

É que de 5 a 10 fica fácil, mais de 1 a 9. O que eu estou tentando fazer é preencher um vetor V[9] com números aleátorios de 0 a 9 sem repedir os números

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é um problema matemático!

 

Olha só, 2*5^3000 (mod 5) = 2

Isso te diz algo?

 

A aritimética modular te permite "restringir" números. Lembrando ainda que (mod m) é apenas uma REPRESENTAÇÃO numérica.

Logo.

Números Aleatórios num intervalo de a à b:

a + (Rand() (mod b-a));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é um problema matemático!

 

Olha só, 2*5^3000 (mod 5) = 2

Isso te diz algo?

 

A aritimética modular te permite "restringir" números. Lembrando ainda que (mod m) é apenas uma REPRESENTAÇÃO numérica.

Logo.

Números Aleatórios num intervalo de a à b:

a + (Rand() (mod b-a));

Algo do tipo:

 

1 + rand()%9

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa. Estava sem tempo, tentei aqui é não aparece mensagem de erro porém o programa não exibe os valores

 

 

#include <cstdlib>
#include <iostream>

using namespace std;

int teste(int valor, int* v){
    int i;
    for(i=0;i<9;i++){
            if(valor==v[i])
                   return 1;
                    }
    return 0;
}

void exibe(int* v){
     int i;
     cout << "Exibindo \n";
     for(i=0;i<9;i++)
            cout << v[i] << endl;
}

int main()
{
    int i;
    int v[9] = {0,0,0,0,0,0,0,0,0};
    int x = 0;
    for(i=0;i<10;i++){
            x = 1+rand()%9;
            if(teste(x,v))
                    v[i] = x;
            else
                    i--;
                    }
    exibe(v);
    system("PAUSE");
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites


#include <cstdlib>

#include <iostream>

#include <ctime>

 

 

using namespace std;

 

bool teste(int valor, int v[], int max){

int i=0;

for(;i<=max;i++) if(valor==v) return true;

return false;

}

 

void exibe(int v[]){

int i=0;

cout << "Exibindo " << endl;

for(;i<9;i++) cout << v << endl;

}

 

int main(){

int i, x;

int v[9];

i = x = 0;

memset(v,0,sizeof(int)*9);

srand(time(NULL));

while(true){

if (i==9) break;

x = (1+(rand()%9));

if(!teste(x,v,i)) v[i++] = x;

}

exibe(v);

system("PAUSE>>NULL");

return 0;

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.