tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
27
Task/N-queens-problem/Factor/n-queens-problem.factor
Normal file
27
Task/N-queens-problem/Factor/n-queens-problem.factor
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
USING: kernel sequences math math.combinatorics formatting io locals ;
|
||||
IN: queens
|
||||
|
||||
: /= ( x y -- ? ) = not ; inline
|
||||
|
||||
:: safe? ( board q -- ? )
|
||||
[let q board nth :> x
|
||||
q iota [
|
||||
x swap
|
||||
[ board nth ] keep
|
||||
q swap -
|
||||
[ + /= ]
|
||||
[ - /= ] 3bi and
|
||||
] all?
|
||||
] ;
|
||||
|
||||
: solution? ( board -- ? )
|
||||
dup length iota [ dupd safe? ] all? nip ;
|
||||
|
||||
: queens ( n -- l )
|
||||
iota all-permutations [ solution? ] filter ;
|
||||
|
||||
: .queens ( n -- )
|
||||
queens
|
||||
[
|
||||
[ 1 + "%d " printf ] each nl
|
||||
] each ;
|
||||
Loading…
Add table
Add a link
Reference in a new issue