46 lines
825 B
Plaintext
46 lines
825 B
Plaintext
INSTALL @lib$+"SORTLIB"
|
|
sort% = FN_sortinit(0,0)
|
|
|
|
M% = 3
|
|
N% = 5
|
|
|
|
C% = FNfact(N%)/(FNfact(M%)*FNfact(N%-M%))
|
|
DIM s$(C%)
|
|
PROCcomb(M%, N%, s$())
|
|
|
|
CALL sort%, s$(0)
|
|
FOR I% = 0 TO C%-1
|
|
PRINT s$(I%)
|
|
NEXT
|
|
END
|
|
|
|
DEF PROCcomb(C%, N%, s$())
|
|
LOCAL I%, U%
|
|
FOR U% = 0 TO 2^N%-1
|
|
IF FNbits(U%) = C% THEN
|
|
s$(I%) = FNlist(U%)
|
|
I% += 1
|
|
ENDIF
|
|
NEXT
|
|
ENDPROC
|
|
|
|
DEF FNbits(U%)
|
|
LOCAL N%
|
|
WHILE U%
|
|
N% += 1
|
|
U% = U% AND (U%-1)
|
|
ENDWHILE
|
|
= N%
|
|
|
|
DEF FNlist(U%)
|
|
LOCAL N%, s$
|
|
WHILE U%
|
|
IF U% AND 1 s$ += STR$(N%) + " "
|
|
N% += 1
|
|
U% = U% >> 1
|
|
ENDWHILE
|
|
= s$
|
|
|
|
DEF FNfact(N%)
|
|
IF N%<=1 THEN = 1 ELSE = N%*FNfact(N%-1)
|