| |
|
|
p.specht
| En Edición de Kombinationen el Breite k de N Elementen es el flotte 'Algorithm T' angesagt; allerdings Yo ihn igual kombiniert con 'Algorithm X-7', sodaß uno nun wahlweise aufsteigende (dflg%=0) oder absteigende (dflg%=1) lexikalische Orden wählen kann. Worauf el kombinierten Indizes verweisen, restos natürlich euch überlassen!
Título de la ventana "Algorithm X-7 from D. Knuth´s TAOCP 7.2.1.3 p.36 Xercise 7"
' (D)2011/07 Demoware by P. Pájaro carpintero
' No warranties whatsoever. Use at your own risk!
' Improved by a decrease-flag (dflg%): 0 = increasing, nonzero = decreasing
var dflg%=0'decreasing order-flag off
Font 2
declarar j%,s%,b%[],n%
Start:
CLS rgb(170,255,220)
imprimir " Inc/Decreasing Combinations of k Elements out of N"
imprimir " 0 para aufsteigende, 1 para absteigende Lexikalordnung?: ";:input dflg%
imprimir " N = ";:input n%:imprimir " k = ";:input s%
SetSize b%[],s%
S1:' Initialize
WhileLoop s%:b%[&Loop]=&Loop+n%-s%-1
EndWhile :j%=1
S2:' Show resultado ('Visit' = do something useful)
Whileloop s%,1,-1
if dflg%=0:imprimir int(n%-1-b%[&Loop]);'increasing order
más :imprimir b%[&Loop];'decreasing order
endif
EndWhile
caso j%>s%:goto "Halt"' terminate if j>s
imprimir ",";:caso %pos>(60-s%): imprimir
if %csrlin>20: WaitInput : cls : endif
S3:' Decrease b(j)
b%[j%]=b%[j%]-1
if b%[j%]<j%
j%=j%+1
goto "S2"
endif
S4:' Reset b%[j%-1]
mientras que j%>1
b%[j%-1]=b%[j%]-1
j%=j%-1
endwhile
Goto "S2"
Halt:
imprimir:imprimir " 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 ▲ |
|
|
|