If conciseness is a primary concern then the following
is worthy of consideration. n>1.
queens4=: 3 : 0
p=. perm y
c=. comb2 y
p #~ (c{"_ 1 p) */ .~:&(|@:(-/"1)) c
)
perm =: [EMAIL PROTECTED] A. i.
comb2 =: [: ; i.@<: ,.&.> <\.@(i.&.<:)
mask =: {"_ 1 */ .~:&(|@:(-/"1)) [
queens5=: comb2 (] #~ mask) perm
queens5 f.
([: ; i.@<: ,.&.> <\.@(i.&.<:)) (] #~ {"_ 1 */ .~:&(|@:(-/"1)) [) [EMAIL
PROTECTED] A. i.
q=: queens5 f.
# 5!:5 <'q'
76
# ' '-.~ 5!:5 <'q'
62
There are 2 essential blanks, so if non-essential blanks
are removed then the length is 64.
queens5 4
1 3 0 2
2 0 3 1
queens5 5
0 2 4 1 3
0 3 1 4 2
1 3 0 2 4
1 4 2 0 3
2 0 3 1 4
2 4 1 3 0
3 0 2 4 1
3 1 4 2 0
4 1 3 0 2
4 2 0 3 1
queens5 6
1 3 5 0 2 4
2 5 1 4 0 3
3 0 4 1 5 2
4 2 0 5 3 1
----- Original Message -----
From: Raul Miller <[EMAIL PROTECTED]>
Date: Sunday, April 6, 2008 15:10
Subject: Re: [Jgeneral] How readable is J?
To: General forum <[email protected]>
> On Sun, Apr 6, 2008 at 11:39 AM, Devon McCormick
> <[EMAIL PROTECTED]> wrote:
> > Wait, it _is_ online:
> > http://www.vector.org.uk/archive/v103/selfridge103_94.htm
> (Ralph's one-liner
> > solution to the N-Queens problem).
>
> Interesting.
>
> A J one-liner (transcribed, almost literally, from that explicit
> solution in the J
> wiki) was significantly shorter.
>
> Repeated here (but probably line wrapped by email):
>
> queens=:(((~.@,[EMAIL PROTECTED]"1[:,.]+"1
> _(i:1)*/~(-i.)@{:@$)((#~+/"1)~,.,@[#*/@[EMAIL PROTECTED]@,@])])^:([EMAIL
> PROTECTED]))@(i.@,*)
>
> queens 4
> 1 3 0 2
> 2 0 3 1
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm