Rand() fonction

Résolu/Fermé
saralamia Messages postés 2 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015 - 13 mai 2015 à 23:56
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 14 mai 2015 à 14:55
bsr ,svp j'ai un pblm et j'aimerai b1 avoir de l'aide
j'essaye de remplir ;aléatoirement en utilisant rand() ; une matrice avec N colonnes et M lignes par des valeurs compris entre (1 - N)
par exemple si N=5 , M =3 , les valeurs seront {1,2,3,4,5}
le pblm c que la fonction rand() fait la répétition des valeurs ,j'ai fait quelque essaies ,mais sans avoir de résultat,avez vous des propositions??

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
14 mai 2015 à 01:37
Bonjour,
Il faut initialiser la graine en la basant sur l'horloge.
Par exemple, tu peux rajouter l'instruction suivante en début de code.
srand(time(NULL));
0
saralamia Messages postés 2 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 14 mai 2015
14 mai 2015 à 11:52
Merci pour la réponse,j'ai essayé,mais il y'a toujours le même problème
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
14 mai 2015 à 14:55
Tout dépend de ce que tu entends par "répétition des valeurs" :
Si tu constates qu'à chaque lancement, ce sont les mêmes valeurs qui sont générés, alors oui, il faut mettre srand(time(NULL));
Si tu constates que parfois la fonction rand() renvoie des nombres déjà générés (donc pas d'unicité), c'est normal puisque c'est "aléatoire"... Si tu veux une liste mélangée, il suffit prendre un tableau, l'initialiser avec toutes les valeurs possibles et de le mélanger.
Si ce que tu souhaites ne fait pas partie de ces deux cas, soit plus précis. Si cela ne fonctionne, n'hésite pas à poster ton code pour qu'on puisse mieux t'aider.
Note : pour poster un code, pense à bien utiliser les balises "code c".
Exemple :
<code c>ici tu mets ton code</code>
0
Utilisateur anonyme
14 mai 2015 à 08:47
Bonjour merci de faire un effort de rédaction, le langage sms est interdit sur le forum

--
0