Algorithme bruteforce: énumère toute les possibilités d'un ensemble par récursivité

Soyez le premier à donner votre avis sur cette source.

Vue 16 366 fois - Téléchargée 1 565 fois

Description

Permet de générer toutes les possibilités de plusieurs caractères a l'aide d'une fonction récursive.

Source / Exemple :


procedure tform1.allkey(chaine: String; maxlen: Integer);
var i:integer;
begin
if stop then begin
    timer1.Enabled:= false;
    exit;
end;
If (Length(chaine) < maxlen) Then //pour ne pas dépasser la longeur
    For i := 1 To Length(dico) do
        allkey(chaine + Midstr(dico, i, 1), maxlen )

Else
If (Length(chaine) = maxlen) Then //si longueur, on traite le résultat grace a pOut
pOut (chaine) 

end;

//GO TO ZIP!!

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonjour,

Je me suis inspiré de ton code, pour le traduire en VB. Il fonctionne très bien. J'ai juste une remarque : la condition "If (Length(chaine) maxlen) Then" n'est pas nécessaire pour le fonctionnement. En effet, la première condition "(Length(chaine) < maxlen)" ne sera plus vrai dès que "Length(chaine) maxlen", donc il n'y a pas le choix.

Amicalement,
Us.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.