[Résolu] Enumération de l'arrangement Anp
Bonjour à tous,
J'ai trouvé le code pour énumérer tous les Cnp mais par contre, pour ce qui est des arrangements, je n'ai rien trouvé.
Mon but, enumérer tous les arrangement possibles de n élément parmis p. Par exemple, j'ai l'ensemble {a,b,c,d,e}, je voudrais connaitre tous les arrangement de 2 éléments parmis cet ensemble.: aa, ab, ba, ac, ca, ...
Un rappel, je sais calculer le nombre de solutions possibles, il me faut les énumérer toutes.
Merci de votre aide,
Mikaël Morvan
[Résolu] trouver l'arrangement de n éléments parmis p (Anp)
Voila, j'ai testé et ça marche :lol:
Le code en Delphi:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
procedure TForm1.Anp(n, p: Integer; chaine: string);
var
k: Integer;
begin
if p= 0 then
begin
Liste.Add(chaine);
exit;
end;
for k:= 1 to n do
if pos( Chr(64+k), chaine)= 0 then
Anp(n, p-1, chaine + Chr(64+k)); |
Ce code permet de faire l'arrangemen des différentes lettres de l'alphabet.
Ma liste est une TStringList que j'assigne à un TMemo pour l'affichage final.
Pour les personnes qui ne connaissent pas Delphi, la fonction pos retourne 0 si la sous-chaine n'a pas été trouvée dans la chaine principale.
Voila, merci beaucoup à Diedie et siocnarf pour leur aide.