| |
|
|
p.specht
| chez qui Ausgabe de Kombinationen qui Breite k aus N Elementen ist qui flotte 'Algorithm T' angesagt; allerdings habe je ihn juste kombiniert avec 'Algorithm X-7', si on eh bien facultativement aufsteigende (dflg%=0) ou bien absteigende (dflg%=1) lexikalische Ordre choisir peux. Worauf qui kombinierten Indizes verweisen, bleibt naturellement euch überlassen!
Titre de la fenêtre "Algorithm X-7 à partir de D. Knuth´s TAOCP 7.2.1.3 p.36 Xercise 7"
' (D)2011/07 Demoware by P. Specht
' No warranties whatsoever. Use at your own risk!
' Improved by a decrease-flag (dflg%): 0 = increasing, nonzero = decreasing
var dflg%=0'decreasing l'ordre-flag off
Font 2
declare j%,s%,b%[],n%
Start:
CLS rgb(170,255,220)
imprimer " Inc/Decreasing Combinations of k Elements out of N"
imprimer " 0 pour aufsteigende, 1 pour absteigende Lexikalordnung?: ";:input dflg%
imprimer " N = ";:input n%:imprimer " k = ";:input s%
SetSize b%[],s%
S1:' Initialize
WhileLoop s%:b%[&Boucle]=&Boucle+n%-s%-1
Endwhile :j%=1
S2:' Show result ('Visit' = do something useful)
Whileloop s%,1,-1
si dflg%=0:imprimer int(n%-1-b%[&Boucle]);'increasing l'ordre
d'autre :imprimer b%[&Boucle];'decreasing l'ordre
endif
Endwhile
cas j%>s%:goto "Halt"' terminate si j>s
imprimer »;:cas %pos>(60-s%): imprimer
si %csrlin>20: WaitInput : cls : endif
S3:' Decrease b(j)
b%[j%]=b%[j%]-1
si b%[j%]<j%
j%=j%+1
goto S2"
endif
S4:' Reset b%[j%-1]
tandis que j%>1
b%[j%-1]=b%[j%]-1
j%=j%-1
endwhile
Goto S2"
arrêt:
imprimer:imprimer " done. ";
WaitInput
Goto "Start"
FIN
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 13.04.2021 ▲ |
|
|
|