Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
25
Task/Permutations/Commodore-BASIC/permutations.basic
Normal file
25
Task/Permutations/Commodore-BASIC/permutations.basic
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
100 INPUT "HOW MANY";N
|
||||
110 DIM A(N-1):REM ARRAY TO PERMUTE
|
||||
120 DIM K(N-1):REM HOW MANY ITEMS TO PERMUTE (ARRAY AS STACK)
|
||||
130 DIM I(N-1):REM CURRENT POSITION IN LOOP (ARRAY AS STACK)
|
||||
140 S=0:REM STACK POINTER
|
||||
150 FOR I=0 TO N-1
|
||||
160 : A(I)=I+1: REM INITIALIZE ARRAY TO 1..N
|
||||
170 NEXT I
|
||||
180 K(S)=N:S=S+1:GOSUB 200:REM PERMUTE(N)
|
||||
190 END
|
||||
200 IF K(S-1)>1 THEN 270
|
||||
210 REM PRINT OUT THIS PERMUTATION
|
||||
220 FOR I=0 TO N-1
|
||||
230 : PRINT A(I);
|
||||
240 NEXT I
|
||||
250 PRINT
|
||||
260 RETURN
|
||||
270 K(S)=K(S-1)-1:S=S+1:GOSUB 200:S=S-1:REM PERMUTE(K-1)
|
||||
280 I(S-1)=0:REM FOR I=0 TO K-2
|
||||
290 IF I(S-1)>=K(S-1)-1 THEN 340
|
||||
300 J=I(S-1):IF K(S-1) AND 1 THEN J=0:REM ELEMENT TO SWAP BASED ON PARITY OF K
|
||||
310 T=A(J):A(J)=A(K(S-1)-1):A(K(S-1)-1)=T:REM SWAP
|
||||
320 K(S)=K(S-1)-1:S=S+1:GOSUB 200:S=S-1:REM PERMUTE(K-1)
|
||||
330 I(S-1)=I(S-1)+1:GOTO 290:REM NEXT I
|
||||
340 RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue