Termite Postado Março 10, 2015 Denunciar Share Postado Março 10, 2015 ola estou trabalhando numa função para gerar numeros pseudo aleatorios baseada em um numero inserido como parametro,no entanto ela repete muito os numeros antes de mudar eles,aqui esta o codigo da função: #include <stdio.h> #include <stdlib.h> #include <time.h> float prox_numero(float num_atual){ int a,b; float prox_num; a=rand()%1000+1; b=rand()%1000+1; prox_num=(a/b)/10; if(rand()%10+1>5){ prox_num*=(-1); } prox_num=prox_num+num_atual; return(prox_num); } main(){ int i; float num=1; for(i=0;i<1000;i++){ printf("%f \n",num); num=prox_numero(num); } } se alguém tiver uma ideia eu aceitaria Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 EduardoVSF Postado Março 10, 2015 Denunciar Share Postado Março 10, 2015 Olá! Experimente inserir no inicio da função: srand((unsigned) time(NULL)); isto vai fazer com que cada rand, seja diferente do anterior, se correr varios rands seguidos sem isto, vão ser sempre iguais graças a um ficheiro gerado pelo win32, este comando recria esse ficheiro sempre que corrido(já não me lembro do nome) xD Espero ter ajudado! Cumprimentos, Eduardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Termite
ola estou trabalhando numa função para gerar numeros pseudo aleatorios baseada em um numero inserido como parametro,no entanto ela repete muito os numeros antes de mudar eles,aqui esta o codigo da função:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
float prox_numero(float num_atual){
int a,b;
float prox_num;
a=rand()%1000+1;
b=rand()%1000+1;
prox_num=(a/b)/10;
if(rand()%10+1>5){
prox_num*=(-1);
}
prox_num=prox_num+num_atual;
return(prox_num);
}
main(){
int i;
float num=1;
for(i=0;i<1000;i++){
printf("%f \n",num);
num=prox_numero(num);
}
}
se alguém tiver uma ideia eu aceitaria
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.