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

Reply via email to