Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,70 @@
|
|||
' Heap's algorithm non-recursive
|
||||
FUNCTION permsderange (n!, flag!)
|
||||
IF n = 0 THEN permsderange = 1
|
||||
|
||||
DIM a!(0 TO n), c!(0 TO n)
|
||||
|
||||
FOR j = 0 TO n - 1: a(j) = j: NEXT j
|
||||
|
||||
WHILE i < n
|
||||
IF c(i) < i THEN
|
||||
IF (i AND 1) = 0 THEN
|
||||
SWAP a(0), a(i)
|
||||
ELSE
|
||||
SWAP a(c(i)), a(i)
|
||||
END IF
|
||||
FOR j = 0 TO n - 1
|
||||
IF a(j) = j THEN j = 99
|
||||
NEXT j
|
||||
IF j < 99 THEN
|
||||
count = count + 1
|
||||
IF flag = 0 THEN
|
||||
c1 = c1 + 1
|
||||
FOR j = 0 TO n - 1
|
||||
PRINT a(j);
|
||||
NEXT j
|
||||
IF c1 > 12 THEN
|
||||
PRINT : c1 = 0
|
||||
ELSE
|
||||
PRINT
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
c(i) = c(i) + 1
|
||||
i = 0
|
||||
ELSE
|
||||
c(i) = 0
|
||||
i = i + 1
|
||||
END IF
|
||||
WEND
|
||||
IF flag = 0 AND c1 <> 0 THEN PRINT
|
||||
permsderange = count
|
||||
END FUNCTION
|
||||
|
||||
SUB Subfactorial (a!())
|
||||
FOR i = 0 TO UBOUND(a)
|
||||
num = num * i
|
||||
IF (i AND 1) = 1 THEN
|
||||
num = num - 1
|
||||
ELSE
|
||||
num = num + 1
|
||||
END IF
|
||||
a(i) = num
|
||||
NEXT i
|
||||
END SUB
|
||||
|
||||
n! = 4
|
||||
DIM subfac!(7)
|
||||
|
||||
CALL Subfactorial(subfac())
|
||||
|
||||
PRINT "permutations derangements for n = "; n
|
||||
i! = permsderange(n, 0)
|
||||
PRINT "count returned ="; i; " , !"; n; " calculated ="; subfac(n)
|
||||
|
||||
PRINT
|
||||
PRINT "count counted subfactorial"
|
||||
PRINT "---------------------------"
|
||||
FOR i = 0 TO 7
|
||||
PRINT USING " ###: ######## ########"; i; permsderange(i, 1); subfac(i)
|
||||
NEXT i
|
||||
Loading…
Add table
Add a link
Reference in a new issue