Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,19 @@
|
|||
(lib 'list) ;; in-permutations
|
||||
(lib 'bigint)
|
||||
|
||||
;; generates derangements by filtering out permutations
|
||||
(define (derangement? nums) ;; predicate
|
||||
(for/and ((n nums) (i (length nums))) (!= n i)))
|
||||
|
||||
(define (derangements n)
|
||||
(for/list ((p (in-permutations n))) #:when (derangement? p) p))
|
||||
|
||||
(define (count-derangements n)
|
||||
(for/sum ((p (in-permutations n))) #:when (derangement? p) 1))
|
||||
|
||||
;;
|
||||
;; !n = (n - 1) (!(n-1) + !(n-2))
|
||||
|
||||
(define (!n n)
|
||||
(* (1- n) (+ (!n (1- n)) (!n (- n 2)))))
|
||||
(remember '!n #(1 0))
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
(derangements 4)
|
||||
→ ((3 0 1 2) (2 0 3 1) (2 3 0 1) (3 2 0 1) (3 2 1 0) (2 3 1 0) (1 2 3 0) (1 3 0 2) (1 0 3 2))
|
||||
|
||||
;; generated versus computed
|
||||
|
||||
(for ((i 10)) (writeln i '| (count-derangements i) (!n i)))
|
||||
|
||||
0 | 1 1
|
||||
1 | 0 0
|
||||
2 | 1 1
|
||||
3 | 2 2
|
||||
4 | 9 9
|
||||
5 | 44 44
|
||||
6 | 265 265
|
||||
7 | 1854 1854
|
||||
8 | 14833 14833
|
||||
9 | 133496 133496
|
||||
|
||||
(!n 20)
|
||||
→ 895014631192902121
|
||||
Loading…
Add table
Add a link
Reference in a new issue