Permutations/Derangements: Difference between revisions
Content added Content deleted
Line 2,395: | Line 2,395: | ||
Brute Force |
Brute Force |
||
<lang PureBasic> |
<lang PureBasic> |
||
Procedure.q |
Procedure.q Subfactoral(n) |
||
If n=0:ProcedureReturn 1:EndIf |
If n=0:ProcedureReturn 1:EndIf |
||
If n=1:ProcedureReturn 0:EndIf |
If n=1:ProcedureReturn 0:EndIf |
||
ProcedureReturn ( |
ProcedureReturn (Subfactoral(n-1)+Subfactoral(n-2))*(n-1) |
||
EndProcedure |
EndProcedure |
||
Line 2,434: | Line 2,434: | ||
; extract the derangements |
; extract the derangements |
||
; cw("derangements["+str(perm(n))+"] for n="+str(n)) |
; cw("derangements["+str(perm(n))+"] for n="+str(n)) |
||
Debug "derangements["+Str( |
Debug "derangements["+Str(Subfactoral(n))+"] for n="+Str(n) |
||
Gosub derangements |
Gosub derangements |
||
; cw("") |
; cw("") |
||
Line 2,441: | Line 2,441: | ||
; show the first 20 derangements |
; show the first 20 derangements |
||
For i=0 To 20 |
For i=0 To 20 |
||
Debug "derangements["+Str(Subfactoral(i))+"] for n="+Str(i) |
|||
Debug "derangements["+Str(perm(i))+"] for n="+Str(i) |
|||
Next |
Next |
||
End |
End |
||