[chbot] Choc fish challenege 3
Synco Reynders
synco.reynders at gmail.com
Wed Aug 31 23:26:19 BST 2011
Thanks for the explanation Mike... I would otherwise have thought you'd
cheated :-). Now that's a well deserved choc fish (unless someone else can
beat it).
Now, I've got another challenge, yet will post as new thread.
/s
On 1 September 2011 09:13, hamster <hamster at snap.net.nz> wrote:
> It calculates each solution...
>
> I was thinking as I lay in the bath last night, and this is what came to
> me... (wreaking a perfectly good bath, I might add)
>
> Step 1. Build masks of if a queen is placed at (x), what moves are no
> longer valid on the board
>
> 0 1 ... 4 (if N = 5)
> -xxxx x-xxx
> xx--- xxx--
> x-x-- -x-x-
> x--x- -x--x
> x---x -x---
>
> Step 2.
> procedure queens(depth)
> begin
> if(depth - n-1)
> begin
> solutions++;
> return;
> end
>
> look at board(depth-1), row depth
>
> for each bit in that row that is not 'x'
> begin
> board(depth) = board(depth-1) ANDed mask(i), offset by depth rows.
> qeeens(depth+1);
> end
> end
>
> For i = 0 to n-1
> copy mask(i) to board(0);
> queens(1)
> next i
> output number of solutions
>
> So here is the search for the first solution, n = 5.. '1' represents a
> playable square, '-' isn't.
>
> Placing 0 at depth 0
> Q----
> --111
> -1-11
> -11-1
> -111-
>
> Placing 2 at depth 1
> Q----
> --Q--
> ----1
> -1---
> -1-1-
>
> Placing 4 at depth 2
> Q----
> --Q--
> ----Q
> -1---
> -1-1-
>
> Placing 1 at depth 3
> Q----
> --Q--
> ----Q
> -Q---
> ---1-
>
> Placing 3 at depth 4
> Q----
> --Q--
> ----Q
> -Q---
> ---1-
>
> Solution 1
> Q----
> --Q--
> ----Q
> -Q---
> ---Q-
>
> There is an optimisation in this that drops the time by a significant
> amount (0m59, n = 16), n=17 takes 6m32, so maybe I could get n=18 in under
> an hour.
>
> Mike
>
>
>
>
> On Thu, 01 Sep 2011 08:37:16 +1200, Andre Renaud <andre at bluewatersys.com>
> wrote:
> > Hi Mike,
> >
> > Just a quick question on this - is your program calculating the actual
> > solutions, or just the count? I saw on the internet that there was an
> > algorithm to tell you the number of solutions available, without
> > actually working out what the solutions were.
> >
> > Andre
> >
> > On 31/08/11 22:07, hamster wrote:
> >> Hi Andre,
> >>
> >> I can verify that and add a couple more...
> >>
> >> [hamster at linuxdev q3]$ time ./q 14
> >> 365596 solutions found at 14
> >>
> >> real 0m2.096s
> >> user 0m2.069s
> >> sys 0m0.006s
> >> [hamster at linuxdev q3]$ time ./q 15
> >> 2279184 solutions found at 15
> >>
> >> real 0m13.189s
> >> user 0m13.133s
> >> sys 0m0.009s
> >> [hamster at linuxdev q3]$ time ./q 16
> >> 14772512 solutions found at 16
> >>
> >> real 1m30.293s
> >> user 1m30.002s
> >> sys 0m0.042s
> >
> > _______________________________________________
> > Chchrobotics mailing list Chchrobotics at lists.linuxnut.co.nz
> > http://lists.ourshack.com/mailman/listinfo/chchrobotics
> > Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/
> > Web site: http://kiwibots.org
> > Meetings 3rd Monday each month at Tait Radio Communications, 175
> Roydvale
> > Ave, 6.30pm
> >
> > When replying, please edit your Subject line to reflect new content.
>
> _______________________________________________
> Chchrobotics mailing list Chchrobotics at lists.linuxnut.co.nz
> http://lists.ourshack.com/mailman/listinfo/chchrobotics
> Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/
> Web site: http://kiwibots.org
> Meetings 3rd Monday each month at Tait Radio Communications, 175 Roydvale
> Ave, 6.30pm
>
> When replying, please edit your Subject line to reflect new content.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ourshack.com/pipermail/chchrobotics/attachments/20110901/27f0ba4d/attachment.htm
More information about the Chchrobotics
mailing list