Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/N-queens-problem/Zkl/n-queens-problem-1.zkl
Normal file
10
Task/N-queens-problem/Zkl/n-queens-problem-1.zkl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
fcn isAttacked(q, x,y) // ( (r,c), x,y ) : is queen at r,c attacked by q@(x,y)?
|
||||
{ r,c:=q; (r==x or c==y or r+c==x+y or r-c==x-y) }
|
||||
fcn isSafe(r,c,qs) // queen safe at (r,c)?, qs=( (r,c),(r,c)..) solution so far
|
||||
{ ( not qs.filter1(isAttacked,r,c) ) }
|
||||
fcn queensN(N=8,row=1,queens=T){
|
||||
qs:=[1..N].filter(isSafe.fpM("101",row,queens)) #isSafe(row,?,( (r,c),(r,c).. )
|
||||
.apply(fcn(c,r,qs){ qs.append(T(r,c)) },row,queens);
|
||||
if (row == N) return(qs);
|
||||
return(qs.apply(self.fcn.fp(N,row+1)).flatten());
|
||||
}
|
||||
3
Task/N-queens-problem/Zkl/n-queens-problem-2.zkl
Normal file
3
Task/N-queens-problem/Zkl/n-queens-problem-2.zkl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
queens := queensN(4);
|
||||
println(queens.len()," solution(s):");
|
||||
queens.apply2(Console.println);
|
||||
Loading…
Add table
Add a link
Reference in a new issue