Knuta2 Skrevet 28. april 2006 Del Skrevet 28. april 2006 Noen som har en algoritme for permutasjoner? det jeg trenger er alle permutasjoner for 9! eks. 123456789 123456798 123456879 ... ... ... 987654321 Knuta Lenke til kommentar
tasle Skrevet 1. mai 2006 Del Skrevet 1. mai 2006 Prøv noe a la disse to prosedyrene (Swap og Perm): TForm1 = Class (TForm) LB1: TListBox; Memo1: TMemo; Button1: TButton; Procedure Button1Click (Sender: TObject); Private { Private declarations } Public { Public declarations } Procedure Swap (var V: Array Of Integer; I, J: Integer); Procedure Perm (Var V: Array Of Integer; n, I: Integer); End; Var Form1 : TForm1; V : Array Of Integer; Procedure TForm1.Swap (var V: Array Of Integer; I, J: Integer); Var T : Integer; Begin T:= V (.I.); V (.I.):= V (.J.); V (.J.):= T; End; Procedure TForm1.Perm (Var V: Array Of Integer; n, I: Integer); Var J : Integer; S : String; Begin If I = n Then Begin S:= ''; For J:= 0 To n -1 Do Begin S:= S + ' '+ IntToStr (V (.J.)); End; LB1.Items.Add (S); End Else For J:= I To n - 1 Do Begin Swap (V, I, J); Perm (V, n, I + 1); Swap (V, I, J); End; End; Procedure TForm1.Button1Click (Sender: TObject); Var L, I : Integer; Begin L:= Memo1.Lines.Count; SetLength (V, L); For I:= 0 To Memo1.Lines.Count - 1 Do V (.I.):= StrToInt (Memo1.Lines (.I.)); Perm (V, L, 0); End; Jeg bruker Memo1 som input av tallene, ett tall pr. linje. Listboksen (LB1) er for utskrift av permutasjonene. Lenke til kommentar
Knuta2 Skrevet 1. mai 2006 Forfatter Del Skrevet 1. mai 2006 Kjempe takk. På to minutter så var alt løst og jeg som hadde sliti i timer uten å få til noe. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå