// // Permutationen Ch.Ziemski 06.11.2005 // // // e = Elemente 10 0..9 // n = Anzahl 3 // // Permutationen = n ^ e 1000 000..999 // // Speicher für n = 1..9 // jeder Speicher kann Werte von 0..e enthalten // x zeigt auf den gerade zu prüfenden Speicher #1=0 #2=0 #3=0 #4=0 #5=0 #6=0 #7=0 #8=0 #9=0 // Strings als Ausgabe Reg_Set(10,"A") Reg_Set(11,"B") Reg_Set(12,"C") Reg_Set(13,"D") Reg_Set(14,"E") Reg_Set(15,"F") Reg_Set(16,"G") Reg_Set(17,"H") Reg_Set(18,"I") Reg_Set(19,"J") #90=1 // x #91=3 // n #92=10 // e do { do { for (#99=#91; #99>0; #99--) { Reg_Ins(#@99+10) } Ins_Newline(1) #103=#90 Call("add1") } while (#104) do { #90++ // nächst höhere Stelle versuchen #103=#90 Call("add1") if (#104) { // bei Erfolg ... #90=1 // ... wieder bei niedrigster Stelle weitermachen break } } while (#90<#91) // solange noch nicht höchste Stelle erreicht } while (#90<#91) return //------------------------------------------------------------------- :add1: // IN: #103 x // OUT: #104 1=o.k. // MOD: #@103 #104=0 if (#@103 < (#92-1)) { #@103++ #104=1 } else { #@103=0 } return