Bonjour,
Comment faire pour obtenir 10 nombres aléatoires DIFFéRENTS compris entre 0 et 42 ?
Merci d'avance![]()
Bonjour,
Comment faire pour obtenir 10 nombres aléatoires DIFFéRENTS compris entre 0 et 42 ?
Merci d'avance![]()
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bonjour,
merci pour la réponse, mais je ne peux pas utiliser celà.
Je dois utiliser les fonctions suivantes: rand() et srand.
Merci d'avance.
Boe,
Si tu imposes à une série 10 nombres de valeurs 0 à 42 de ne pas comprendre de doublon, alors tu ne peux pas parler d'aléatoire.
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
il suffit de faire un aleas entre 0et 42 pour le premier tirage, 0 et 41 pour le second ... 0 et 32 pour le 10e et d'écrire à chaque fois une liste de correspondance dont on retire les éléments déjà tirés (peut-être qu'un set serait plus pertinent d'ailleurs).
bonne chance
Ou un random_shuffle dont on prend les n premiers résultats.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
tu peut faire un tableau d int de taille 42 ensuite tu init toutes les cases a 0
tu passe a 1 ken tu chope un random le nombre de ton random = la case de ton tableau, si la case est déjà a 1 tu recommence et tu incrémente en même temps un compteur afin de s'avoir combien tu a enregistré de nombre.
Et voila tu a t'es n nombre sans doublon.
Désolé si il manque des accents c'est la magie du qwerty :/
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Je plussoie ceux qui disent que c'est le même problème.
Et j'utiliserais la même méthode que JolyLoïc: mélanger le tableau et prendre les N premières...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Hoa,
Justement, avec le programme, on fait tous les tirages avec toutes les boules, et on ne tient pas compte du tirage des doublons, ce qui ne peut pas arriver avec le loto.
Le loto ayant en supplément l'avantage d'être un tirage véritablement aléatoire (du moins, on peut l'espérer), alors que le programme utilise un générateur qui est déjà pseudo-aléatoire, et en supprimant les doublons, on brise sa monotonie.
Ceci étant dit, on est bien obligés de s'en satisfaire ...![]()
D'un autre côté comme tu l'as dis c'est un PRNG donc oui c'est plus de l'aléatoire, mais ça en était pas non plus à la base. (et ça m'étonnerait qu'il fasse ça pour utiliser dans de la sécurité)
Mais l'objectif reste le même: Tirage de X boules parmi Y sans remise.
De plus, on peut tout-à-fait faire un algorithme où les doublons sont impossibles comme au loto. Mais ça a tendance à être lent, alors on préfère généralement le random_shuffle...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager