PROCperms(3) PRINT PROCperms(4) END DEF PROCperms(n%) LOCAL p%(), i%, k%, s% DIM p%(n%) FOR i% = 1 TO n% p%(i%) = -i% NEXT s% = 1 REPEAT PRINT "Perm: [ "; FOR i% = 1 TO n% PRINT ;ABSp%(i%) " "; NEXT PRINT "] Sign: ";s% k% = 0 FOR i% = 2 TO n% IF p%(i%)<0 IF ABSp%(i%)>ABSp%(i%-1) IF ABSp%(i%)>ABSp%(k%) k% = i% NEXT FOR i% = 1 TO n%-1 IF p%(i%)>0 IF ABSp%(i%)>ABSp%(i%+1) IF ABSp%(i%)>ABSp%(k%) k% = i% NEXT IF k% THEN FOR i% = 1 TO n% IF ABSp%(i%)>ABSp%(k%) p%(i%) *= -1 NEXT i% = k%+SGNp%(k%) SWAP p%(k%),p%(i%) s% = -s% ENDIF UNTIL k% = 0 ENDPROC