nqueens.scm

来自「Scheme跨平台编译器」· SCM 代码 · 共 31 行

SCM
31
字号
;;; NQUEENS -- Compute number of solutions to 8-queens problem.(define trace? #f)(define (nqueens n)  (define (dec-to n)    (let loop ((i n) (l '()))      (if (= i 0) l (loop (- i 1) (cons i l)))))  (define (try x y z)    (if (null? x)      (if (null? y)        (begin (if trace? (begin (write z) (newline))) 1)        0)      (+ (if (ok? (car x) 1 z)           (try (append (cdr x) y) '() (cons (car x) z))           0)         (try (cdr x) (cons (car x) y) z))))  (define (ok? row dist placed)    (if (null? placed)      #t      (and (not (= (car placed) (+ row dist)))           (not (= (car placed) (- row dist)))           (ok? row (+ dist 1) (cdr placed)))))  (try (dec-to n) '() '()))(time (do ((i 1000 (- 1 1))) ((zero? i)) (nqueens 10)))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?