Menu

Generer toutes les possibilites [Résolu]

Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019
- - Dernière réponse : yg_be
Messages postés
7733
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 avril 2019
- 13 avril 2019 à 10:27
Bonjour,
J'ai dans mon code un array de string contenant un certain nombre de caractère :
string[] char = new string [] {*rien*,A,B,C...a,b,c...,7,8,9};
Je souhaiterais "calculer" toute les possibilitées de combinaison de ces caractères. La taille des combinaisons sera comprise entre un max et un min. Actuellement j'utilise plusieurs boucle for mais c'est vraiment pas optimisé. J'aimerais connaitre une technique permettant de générer toute les combinaisons tout en pouvant modifier facilement leur taille.

Merci de vos réponses
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
7733
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 avril 2019
460
1
Merci
bonjour, peux-tu nous montrer ton code?

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 40432 internautes nous ont dit merci ce mois-ci

LolixDudu
Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019
-
Haaaaa oui la toute suite c'est mieux
Je vais tester ça et je donne des nouvelles bientôt
LolixDudu
Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019
-
Super ça marche nickel
LolixDudu
Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019
-
Voici mon code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Collections;
using System.IO;
using System.Security.Permissions;

 /*Please dont change namespace, Dcoder 
 and class must not be public*/

 //Compiler version 4.0, .NET Framework 4.5


 namespace Dcoder
 {
 	public class Program
 	{
 		static string[]chars = new string[]{
 			"a","b","c","d","1","2","3","","A"
 		};
 		static int mdpSize = 4;
 		static List<string> passwords = new List<string>();
 		public static void Main(string[] args)
 		{
 			mdp("",mdpSize);
 		}
 		
 		static void mdp(string debutmdp, int size)
 		{
 			if(size <= 0)
 			{
 				Console.WriteLine(debutmdp);
 				passwords.Add(debutmdp);
 			}
 			else 
 			{
 				for(int i=0;i < chars.Length; i++)
 				{
 					mdp(debutmdp + chars[i], size - 1);
 				}
 			}
 		}
	}
 }
    
LolixDudu
Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019
-
Pour gagner en vitesse , je remplace :
if(size <= 0)
            {
                passwords.Add(mdp + ";");
                Console.WriteLine(passwords.Count);

            }
            else
            {
                for(int i = 0; i < chars.Length; i++)
                {
                    mdpGenerator(mdp + chars[i], size - 1);
                }
            }


par ça :
while(size > 0)
            {
                for(int i = 0; i < chars.Length; i++)
                {
                    mdpGenerator(mdp + chars[i], size - 1);
                }
                size--;
            }
            
            passwords.Add(mdp + ";");
            Console.WriteLine(passwords.Count);


je gagne environ 250 mots pas secondes pour des mots de 5 lettres
yg_be
Messages postés
7733
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 avril 2019
460 > LolixDudu
Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019
-
je ne pense pas que cela fasse la même chose.
Commenter la réponse de yg_be