Variable aléatoire

cpartiot Messages postés 2 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 9 février 2006 - 8 févr. 2006 à 22:10
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 10 févr. 2006 à 14:10
je voudrais créé une fonction qui renvoi une valeur aléatoire avec un nombre en parametre
par exemple :

a = aleatoire( 5 ) //renvoi 24.7
a = aleatoire(8) //renvoi -12.2
a = aleatoire(3) //renvoi 54.7
a = aleatoire(5) //renvoi de nouveau 24.7

c a dire que si je passe toujours la meme valeur en parametre j'aurais toujours la meme valeur de retour

je ne c pas si c tres clair...
... si oui pouriez-vous m'aider ?

merci

6 réponses

wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
8 févr. 2006 à 23:01
tu fais un rand et tu enregistre
par exemple :
int aleatoire(int n)
{

}
tu utilise rand pour le aleatoire et tu fais une stuct qui va enregister t donnes

struct test
tu recuper les valeur et tu les mets dans un tableau
dans ta stuct int 5 = 24,7 et donc quand tu cherche 5 tu oubtieb 24,7

that was easy :)
bonne chance :)
Reponse Accepter ?
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
8 févr. 2006 à 23:21
En supposant que ta une fonction générer qui marche tu peux faires un truc dans ce style.

double generer(int,int);

class Generateur {
public:
Generateur(const int& minValue,const int& maxValue);
double gen(const int& i);
private:
int minValue;
int maxValue;
map dejaGeneres;
};

Generateur::Generateur(const int& minValue,const int& maxValue) {
this->minValue = minValue;
this->maxValue = maxValue;
}

double Generateur::gen(const int& i) {
double nb = generer(this->minValue, this->maxValue);
if(this->dejaGeneres.find(i) == this->dejaGeneres.end()){
this->dejaGeneres.insert(pair(i, nb));
return nb;
}
return this->dejaGeneres[i];
}

Bonne chance.

Bouba
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 févr. 2006 à 02:56
Moi j'aurai fait un tableau de int initialisé au démarage par des valeurs prises au hasard comme ça



int iTab[iTaille];

srand(GetTickCount());

for(int i=0; iif(!Meilleur("Joky")) return ERREUR;<
0
cpartiot Messages postés 2 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 9 février 2006
9 févr. 2006 à 23:32
en fait j'amerais eviter l'utilisation d'un tableau, je ne c pas si c posible.....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 févr. 2006 à 23:44
C'est tellement plus simple avec un tableau.

J'vois pas le soucis, sauf si c'est un exo pour l'école ;) et que la consigne interdit formellement l'utilisation de tableau :)

if(!Meilleur("Joky")) return ERREUR;<
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
10 févr. 2006 à 14:10
Mouai, avec un tableau c'est assez moyen aussi je trouve, si l'argument de la fonction à une grande étendu de valeur le tableau alloué prendra beaucoup de place en mémoire, pas génial. Je pensais que l'idée d'un map comme je l'ai montré dans l'exemple était pas trop mal. Pourquoi ça ne te convient pas ?

Bouba
0