Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Way too much time on my hands
DA Morgan wrote:
> Maxim Demenko wrote:
>
>> DA Morgan schrieb: >> >>> I have posted a page to the internet with a bit of a puzzle (to put it >>> mildly): http://www.psoug.org/sudoku.html >>> >>> This is hardly a finished work of art ... in fact it is only about 3 >>> hours or so worth of any work at all. >>> >>> But it seems like an interesting challenge, solving Sudoku puzzles with >>> PL/SQL, so I thought I'd put this out here for anyone that might want to >>> collaborate (or just criticize some reasonably abysmal code). >>> >>> It easily solves simple problems. Those where it is possible to examine >>> blocks, columns, and rows, and identify at least one cell with each >>> iteration where an unambiguous answer is possible. But chokes when the >>> solution is more complex. >>> >>> I've considered writing something to do a brute force attack but thought >>> others might be able to come up with something far more elegant. >>> >>> Enjoy! >> >> >> Have you seen a Rene Nyffenegger approach ? >> http://www.adp-gmbh.ch/blog/2005/september/6.html >> >> Best regards >> >> Maxim
Nope. I wrote a program too, and there certainly are partial puzzles where there is no inductive solution to any one of the remaining still-undefined cells. I have seen a puzzle that had two such states, the second only reached after making all the logical inferences from a guess made at the first ambiguous state. Joe
>
> BTW ... for anyone interested in comparing the two ... here are the
> insert statement's for Renee's method:
>
> begin
> insert into sb (rij, kolom, digit, blok) values (1, 1, 2, 1);
> insert into sb (rij, kolom, digit, blok) values (1, 2, null, 1);
> insert into sb (rij, kolom, digit, blok) values (1, 3, null, 1);
> insert into sb (rij, kolom, digit, blok) values (1, 4, null, 2);
> insert into sb (rij, kolom, digit, blok) values (1, 5, 4, 2);
> insert into sb (rij, kolom, digit, blok) values (1, 6, null, 2);
> insert into sb (rij, kolom, digit, blok) values (1, 7, null, 3);
> insert into sb (rij, kolom, digit, blok) values (1, 8, null, 3);
> insert into sb (rij, kolom, digit, blok) values (1, 9, 8, 3);
>
> insert into sb (rij, kolom, digit, blok) values (2, 1, null, 1);
> insert into sb (rij, kolom, digit, blok) values (2, 2, 8, 1);
> insert into sb (rij, kolom, digit, blok) values (2, 3, null, 1);
> insert into sb (rij, kolom, digit, blok) values (2, 4, null, 2);
> insert into sb (rij, kolom, digit, blok) values (2, 5, null, 2);
> insert into sb (rij, kolom, digit, blok) values (2, 6, null, 2);
> insert into sb (rij, kolom, digit, blok) values (2, 7, null, 3);
> insert into sb (rij, kolom, digit, blok) values (2, 8, 7, 3);
> insert into sb (rij, kolom, digit, blok) values (2, 9, null, 3);
>
> insert into sb (rij, kolom, digit, blok) values (3, 1, 3, 1);
> insert into sb (rij, kolom, digit, blok) values (3, 2, null, 1);
> insert into sb (rij, kolom, digit, blok) values (3, 3, null, 1);
> insert into sb (rij, kolom, digit, blok) values (3, 4, null, 2);
> insert into sb (rij, kolom, digit, blok) values (3, 5, 2, 2);
> insert into sb (rij, kolom, digit, blok) values (3, 6, null, 2);
> insert into sb (rij, kolom, digit, blok) values (3, 7, null, 3);
> insert into sb (rij, kolom, digit, blok) values (3, 8, null, 3);
> insert into sb (rij, kolom, digit, blok) values (3, 9, 6, 3);
>
> insert into sb (rij, kolom, digit, blok) values (4, 1, null, 4);
> insert into sb (rij, kolom, digit, blok) values (4, 2, null, 4);
> insert into sb (rij, kolom, digit, blok) values (4, 3, 2, 4);
> insert into sb (rij, kolom, digit, blok) values (4, 4, null, 5);
> insert into sb (rij, kolom, digit, blok) values (4, 5, null, 5);
> insert into sb (rij, kolom, digit, blok) values (4, 6, null, 5);
> insert into sb (rij, kolom, digit, blok) values (4, 7, 7, 6);
> insert into sb (rij, kolom, digit, blok) values (4, 8, null, 6);
> insert into sb (rij, kolom, digit, blok) values (4, 9, 1, 6);
>
> insert into sb (rij, kolom, digit, blok) values (5, 1, null, 4);
> insert into sb (rij, kolom, digit, blok) values (5, 2, null, 4);
> insert into sb (rij, kolom, digit, blok) values (5, 3, null, 4);
> insert into sb (rij, kolom, digit, blok) values (5, 4, null, 5);
> insert into sb (rij, kolom, digit, blok) values (5, 5, 3, 5);
> insert into sb (rij, kolom, digit, blok) values (5, 6, null, 5);
> insert into sb (rij, kolom, digit, blok) values (5, 7, null, 6);
> insert into sb (rij, kolom, digit, blok) values (5, 8, null, 6);
> insert into sb (rij, kolom, digit, blok) values (5, 9, null, 6);
>
> insert into sb (rij, kolom, digit, blok) values (6, 1, 9, 4);
> insert into sb (rij, kolom, digit, blok) values (6, 2, null, 4);
> insert into sb (rij, kolom, digit, blok) values (6, 3, 5, 4);
> insert into sb (rij, kolom, digit, blok) values (6, 4, null, 5);
> insert into sb (rij, kolom, digit, blok) values (6, 5, null, 5);
> insert into sb (rij, kolom, digit, blok) values (6, 6, null, 5);
> insert into sb (rij, kolom, digit, blok) values (6, 7, 4, 6);
> insert into sb (rij, kolom, digit, blok) values (6, 8, null, 6);
> insert into sb (rij, kolom, digit, blok) values (6, 9, null, 6);
>
> insert into sb (rij, kolom, digit, blok) values (7, 1, 8, 7);
> insert into sb (rij, kolom, digit, blok) values (7, 2, null, 7);
> insert into sb (rij, kolom, digit, blok) values (7, 3, null, 7);
> insert into sb (rij, kolom, digit, blok) values (7, 4, 1, 8);
> insert into sb (rij, kolom, digit, blok) values (7, 5, null, 8);
> insert into sb (rij, kolom, digit, blok) values (7, 6, 6, 8);
> insert into sb (rij, kolom, digit, blok) values (7, 7, null, 9);
> insert into sb (rij, kolom, digit, blok) values (7, 8, null, 9);
> insert into sb (rij, kolom, digit, blok) values (7, 9, 9, 9);
>
> insert into sb (rij, kolom, digit, blok) values (8, 1, null, 7);
> insert into sb (rij, kolom, digit, blok) values (8, 2, 2, 7);
> insert into sb (rij, kolom, digit, blok) values (8, 3, null, 7);
> insert into sb (rij, kolom, digit, blok) values (8, 4, null, 8);
> insert into sb (rij, kolom, digit, blok) values (8, 5, null, 8);
> insert into sb (rij, kolom, digit, blok) values (8, 6, null, 8);
> insert into sb (rij, kolom, digit, blok) values (8, 7, null, 9);
> insert into sb (rij, kolom, digit, blok) values (8, 8, 6, 9);
> insert into sb (rij, kolom, digit, blok) values (8, 9, null, 9);
>
> insert into sb (rij, kolom, digit, blok) values (9, 1, 1, 7);
> insert into sb (rij, kolom, digit, blok) values (9, 2, null, 7);
> insert into sb (rij, kolom, digit, blok) values (9, 3, null, 7);
> insert into sb (rij, kolom, digit, blok) values (9, 4, null, 8);
> insert into sb (rij, kolom, digit, blok) values (9, 5, null, 8);
> insert into sb (rij, kolom, digit, blok) values (9, 6, 7, 8);
> insert into sb (rij, kolom, digit, blok) values (9, 7, null, 9);
> insert into sb (rij, kolom, digit, blok) values (9, 8, null, 9);
> insert into sb (rij, kolom, digit, blok) values (9, 9, 2, 9);
> commit;
> end;
> /
Received on Tue Apr 11 2006 - 20:02:17 CDT