Nombre aléatoire sans répétition
Issouff
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
luckydu43 Messages postés 4259 Date d'inscription Statut Membre Dernière intervention -
luckydu43 Messages postés 4259 Date d'inscription Statut Membre Dernière intervention -
Salut j'ai réussi a générer des nombres aléatoires mais je voudrais qu'il n'y ai pas de répétition avec les nombres générés. J'ai besoin d'aide Voici mon code :
Random rnd = new Random();
for (int ctr = 1; ctr <= 7; ctr++)
{
Console.Write("{0,6}", rnd.Next(1, 50));
if (ctr % 7 == 0) Console.WriteLine();
}
Random rnd = new Random();
for (int ctr = 1; ctr <= 7; ctr++)
{
Console.Write("{0,6}", rnd.Next(1, 50));
if (ctr % 7 == 0) Console.WriteLine();
}
A voir également:
- Générateur nombre aléatoire sans remise
- Remise a zero pc - Guide
- Generateur mot de passe - Télécharger - Sécurité
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
1 réponse
Bonsoir !
Déjà, vu que je code en Java, je ne parlerai pas de la syntaxe du code mais de l'analyse. Eh ouais --'
Bref ^_^
Je vois 2 manières pour ce faire :
Manière 1 : Stocker dans un conteneur quelconque (tableau, liste, enum, map, set...) une liste de nombres.
Utiliser la méthode random pour réarranger les termes de manière aléatoire. Le fait de replacer plusieurs fois le même terme ne pose alors pas de problème. Le tout sera de faire en sorte de le nombre de répétitions soit suffisamment grand pour être sûr à 95% que les termes ont tous changé de place. Ou non. Et ça donne une liste de nombres aléatoires différents mais l'ensemble des éléments générés sera forcément égal à l'ensemble de génération des nombres (tu veux des nombres de 3 à 42, tu auras TOUS les nombres de 3 à 42. Ni plus, ni moins).
Manière 2 : Stocker dans un conteneur quelconque chaque nombre généré, et si le nombre généré est déjà présent dans le conteneur... ne pas le rajouter. Cette méthode fonctionne bien pour le cas de la génération d'un nombre n de nombres situés dans un intervalle sans forcément demander à ce que n corresponde exactement au cardinal de i. Mais sans optimisation, cette manière est gourmande.
Si ça suffit, c'est top ;-)
Bon code
Luc
Les 3 plus grands mensonges du dev ? La doc sera faite plus tard... Le programme n'a aucun bug... Les spécifs sont finies...
Un peuple sacrifiant sa liberté pour plus de sécurité perd les deux.
Déjà, vu que je code en Java, je ne parlerai pas de la syntaxe du code mais de l'analyse. Eh ouais --'
Bref ^_^
Je vois 2 manières pour ce faire :
Manière 1 : Stocker dans un conteneur quelconque (tableau, liste, enum, map, set...) une liste de nombres.
Utiliser la méthode random pour réarranger les termes de manière aléatoire. Le fait de replacer plusieurs fois le même terme ne pose alors pas de problème. Le tout sera de faire en sorte de le nombre de répétitions soit suffisamment grand pour être sûr à 95% que les termes ont tous changé de place. Ou non. Et ça donne une liste de nombres aléatoires différents mais l'ensemble des éléments générés sera forcément égal à l'ensemble de génération des nombres (tu veux des nombres de 3 à 42, tu auras TOUS les nombres de 3 à 42. Ni plus, ni moins).
Manière 2 : Stocker dans un conteneur quelconque chaque nombre généré, et si le nombre généré est déjà présent dans le conteneur... ne pas le rajouter. Cette méthode fonctionne bien pour le cas de la génération d'un nombre n de nombres situés dans un intervalle sans forcément demander à ce que n corresponde exactement au cardinal de i. Mais sans optimisation, cette manière est gourmande.
Si ça suffit, c'est top ;-)
Bon code
Luc
Les 3 plus grands mensonges du dev ? La doc sera faite plus tard... Le programme n'a aucun bug... Les spécifs sont finies...
Un peuple sacrifiant sa liberté pour plus de sécurité perd les deux.