Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
17
Task/Topswops/Racket/topswops.rkt
Normal file
17
Task/Topswops/Racket/topswops.rkt
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#lang racket
|
||||
|
||||
(define (all-misplaced? l)
|
||||
(for/and ([x (in-list l)] [n (in-naturals 1)]) (not (= x n))))
|
||||
|
||||
(define (topswops n)
|
||||
(for/fold ([m 0]) ([p (in-permutations (range 1 (add1 n)))]
|
||||
#:when (all-misplaced? p))
|
||||
(let loop ([p p] [n 0])
|
||||
(if (= 1 (car p))
|
||||
(max n m)
|
||||
(loop (let loop ([l '()] [r p] [n (car p)])
|
||||
(if (zero? n) (append l r)
|
||||
(loop (cons (car r) l) (cdr r) (sub1 n))))
|
||||
(add1 n))))))
|
||||
|
||||
(for ([i (in-range 1 11)]) (printf "~a\t~a\n" i (topswops i)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue