Page 1 of 2

Mayby simple for you but... Hidden Doubles/Triples/Quads

Posted: Tue Feb 13, 2007 9:52 pm
by XiViX
Hello,

I have a uge problem :( im trying for 2 days now and im still on the same point.. however i think i solved 1 thing and that is selecting the doubles but im stil nog quiet shure if this will work in all sudoku's...

The naked doubles, triples and quads works fine.

Can you help me out???

This is what i used to get the hidden doubles, triples and quads:

if ($VLD{$POS} =~ /\d\d([$NUM]{2,4})/ && $NUM ne $VLD{$POS}) {
print "<b>OK</b><br>\n";
} else {
print "NOPE!<br>\n";
}

but if i check on doubles it will only check 1234 eq 23 but not when 23 eq 1234 mayby ill find it out these days

But i still dont know whitch digits i need to keep beqourse 123 can be 12 and also 23 and also 13 i still dont know if i can delete it or not

but if you got a better sollution please let me know!!

Im programming in perl

http://sulogo.vondsten.nl/fortest.cgi
http://sulogo.vondsten.nl/nummer.cgi

Regards,

Christian
Netherlands

Posted: Tue Feb 13, 2007 10:53 pm
by Ruud
I'm not familiar with perl, so I cannot help you with the language, but this is the method I use to find naked subsets:

1. Convert each candidate to a bit value.

1=1, 2=2, 3=4, 4=8, 5=16, 6=32, 7=64, 8=128, 9=256

2. Add all bit values together for each cell.

This will give you a number (CV) between 1 and 511.

3. To look for a subset of size N:

- perform a logical OR for any group of N CV in a row, column or box.
- count the number of bits in the result (CX)
- if the count equals N, you have found a subset of size N.

4. To eliminate the remaining candidates:

- XOR CX with each CV number not belonging to the subset.
- Convert the CV numbers back to a candidate string.

I hope you can do this in perl,
Ruud

Posted: Tue Feb 13, 2007 11:11 pm
by XiViX
Hehehehe no problem :P :S lol ill try, mayby ill find an other solution :D but it sounds simple

thanks,

Christian
Netherlands

Posted: Wed Feb 14, 2007 1:30 am
by Marlie
Hello Christian
Where is the original?
I had a short look on this one and only found 3 times an x-wing.

Hallo Christaan
Waar heb je deze puzzel vandaan en is dit t origineel of heb je zelf al e.e.a weggestreept?
Ik wil um ook graag proberen te maken, vandaar.
X-wing:
de 5-en op rij 3 en 8,
de 1-en op rij 2 en 8,als je dan hebt weggestreept wat weg kan blijft er weer een x wing over:
de 1-en op rij 3 en 7

ik heb um opgelost.
Als je hebt gedaan als hierboven blijft er in rij 8 maar 4 plaaten over waar je de 1,3,8 en 9 kan plaatsen dus die kun je in de rest van de rij wegstrepen.

Heb je er nog meer?



En samen komen we er wel uit.
Groetjes Marlie

Posted: Wed Feb 14, 2007 11:53 am
by XiViX
Hello Marlie,

It's about line 7 with the numbers:

1: 5
2: 1246
3: 14
4: 267
5: 24679
6: 39
7: 139
8: 1389
9: 38

If i run my naked triple i get as results:

1: 5
2: 246
3: 14
4: 267
5: 2467
6: 39
7: 139
8: 1389
9: 38

If i run it then it will remove the 1 from R7/C2 and it removes the 9 from R7/C5 but i dont know why :-) hihihi programming stays weard sometimes :D

This is about the puzle from your website puzle:

605301204703000509000000000100936007000000000900457001000000000807000402309108706

Hallo Marlie,

Ik snap ut ffies niet meer, ben nu al 3 dagen aan het kl*ten om de hidden doubles/triples en quads weg te strepen alleen de logica om het weg te strepen vergaat mij een beetje. Maar misschien dat het ook op een andere manier wil? Ik ben momenteel alleen even een test solver aan het maken en daar na wil ik gaan proberen om de solver alles op te lossen binnen een halve seconde :D moet tog lukken?

Groetjes,

Christian
Netherlands

PS Ruud? (tipical Dutch name) Can you send me a peace from your XOR/OR CX code, i have tryed to find any good information but its still not clear how i need to use it, also my english fails sometimes :D

Thanks!!!

Posted: Wed Feb 14, 2007 1:49 pm
by Marlie
Hoi Christian
Ik weet niks van solvers ik doe alles met mun eigen koppie
Je hebt ook de puzzel in de link veranderd en ik word geen wijs meer uit je beschrijving van rijen 7.
Kun je me per mail het origineel sturen?
En uitleggen waar je dan niks van snapt?
Ik zal dan kijken of ik het stap voor stap aan je kan uitleggen.
Maar een solver binnen een halve seconde is wel leuk maar wat heb je eraan?
Groeten Marlie

Posted: Wed Feb 14, 2007 4:17 pm
by XiViX
Woeps ik zag 't :-) sorry :D terug geplaatst!

Posted: Wed Feb 14, 2007 5:34 pm
by Marlie
Wat wil je nog weten precies.
Je hebt een quad in rij 7 met de cijfers 1389
Dat zijn 4 hokjes waar zeker die 4 getallen moeten komen dus de 1 bij 14 kun je wegstrepen op rij 7

Posted: Wed Feb 14, 2007 5:55 pm
by XiViX
Naja, hoe ik van dit:

1: 5
2: 1246
3: 14
4: 267
5: 24679
6: 39
7: 139
8: 1389
9: 38

Dit krijg:

1: 5
2: 26
3: 14
4: 267
5: 267
6: 39
7: 139
8: 1389
9: 38

Dit moet namelijk programmeer technisch opgelost worden anders blijf ik hangen bij dit punt en dan kan ik niet verder. Het probleem is al met al dus dat bijvoorbeeld in dit geval een hidden triple dat ik niet zomaar kan controlleren tussen 3 goeie cijfers en 1 of 2 foute cijfers. Ik kan geen vergelijking maken.

Groetjes

Christian

Posted: Wed Feb 14, 2007 5:57 pm
by Marlie
Tja dan ben ik bang dat je Ruud's hulp nodig hebt ik heb daar geen verstand van.

Posted: Wed Feb 14, 2007 7:16 pm
by XiViX
Ruud? Kan je me helpen?
Ruud? Can you help me?

Posted: Wed Feb 14, 2007 7:35 pm
by Ruud
Christian,

zoeken naar hidden subsets (pairs, triples, quads) kan op dezelfde manier als naked subsets, als je eerst een transpositie doet.
In de volgende matrix staan de cellen links en de cijfers bovenaan:

Code: Select all

   1 2 3 4 5 6 7 8 9
1&#58;         x 
2&#58; x x   x   x 
3&#58; x     x 
4&#58;   x       x x 
5&#58;   x   x   x x   x 
6&#58;     x           x 
7&#58; x   x           x 
8&#58; x   x         x x 
9&#58;     x         x 
Vervolgens zet je dit om naar de celposities per cijfer:

1: 2378
2: 245 *
3: 6789
4: 235
5: 1
6: 245 *
7: 45 *
8: 89
9: 5678

Hierin kan je een "formerly hidden triple" voor cijfers 267 in celposities 245 vinden.

Zo ziet het resultaat eruit in de matrix:

Code: Select all

   1 2 3 4 5 6 7 8 9
1&#58;         x 
2&#58; - *   -   * 
3&#58; x     x 
4&#58;   *       * * 
5&#58;   *   -   * *   - 
6&#58;     x           x 
7&#58; x   x           x 
8&#58; x   x         x x 
9&#58;     x         x 
Het leuke is dat deze matrix ook gebruikt wordt als je op zoek gaat naar X-Wing, Swordfish en Jellyfish...

Ruud

Posted: Wed Feb 14, 2007 8:00 pm
by Marlie
:( precies :shock: :lol:

Posted: Wed Feb 14, 2007 8:11 pm
by XiViX
Ik wil je eerst ontzettend bedanken voor de hulp, natuurlijk ook Marlie. Hadt trouwens al z'n vermoeden dat je uit nederland komt :D lol Ruud typisch nederlandse naam :-)

Afijn,

Zoiets hadt ik al in gedachten na 3 dagen alleen het is misschien een kronkel in me hoofd dat voor problemen geeft :-) ik heb er ook al aan staan te denken om een 3e hash te gebruiken voor het totaal overzicht. Alleen de naked triples bekeek ik heel anders :D het is misschien wel het engels wat zo lastig is (vooral als sommige woorden je niet helemaal duidelijk zijn.)

Ik zal even rustig je matrix (2d) bestuderen heb intussen wat nieuwe vars bijgeleerd.

geeft het trouwens problemen als je col/row/block in 1 keer gebruikt? want zo heb ik het nu zegmaar. als ik namelijk positie r3 heb en c3 p(21) dan start ik met mijn row namelijk op p(19) r3,c1 en mijn col op p(3) r1,c3 en mijn blok op p(1) r1, c1

Geeft dat problemen bij het oplossen?? omdat ik namelijk 1 functie uitvoer voor 3 dingen.

Groetjes,

Christian,

Ik zal eerst even het overzicht van jou eens na te bootsen.

Posted: Wed Feb 14, 2007 8:30 pm
by XiViX
http://sulogo.vondsten.nl/nummer.cgi

Dat was dus maar een minuutje of 5... nu nog het 2e gedeelte, het wegschrijven van de hidden tripples