Bonjour,
Comment faire pour obtenir 10 nombres aléatoires DIFFéRENTS compris entre 0 et 42 ?
Merci d'avance ;)
Version imprimable
Bonjour,
Comment faire pour obtenir 10 nombres aléatoires DIFFéRENTS compris entre 0 et 42 ?
Merci d'avance ;)
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.
Ben la faq te montre comment :s.
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.
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.
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 :/
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...
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 ... :mouarf:
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...