The Robman wrote:Sped, I'm going to have to try and study your solution for a bit to see if I can follow it.
On second glance, the chain I noted above can be made shorter:
1-(r6c4)-6-(r4c4)-7-(r4c6)-9-(r4c2)-5-(r8c2)-9-(r8c5)-1
- Code: Select all
*-----------------------------------------------------------*
| 4 1 5 | 8 3 6 | 2 7 9 |
| 3 7 6 | 9 2 4 | 1 5 8 |
| 89 2 89 | 15 7 15 | 3 6 4 |
|-------------------+-------------------+-------------------|
| 2589 59^ 1 | 67^ 589 79^ | 4 3 26 |
| 7 6 3 | 4 (1)8 2 | 9 18 5 |
| 2589 4 89 | 16* (1)589 3 | 7 18 26 |
|-------------------+-------------------+-------------------|
| 19 8 7 | 2 6 19 | 5 4 3 |
| 159 59^ 4 | 3 19* 8 | 6 2 7 |
| 6 3 2 | 57 4 57 | 8 9 1 |
*-----------------------------------------------------------*
The xy chain works like this..
Either the start of the chain in r6c4 or the end of the chain in r8c5 has to be a 1. Therefore cells that see both r6c4 and r8c5 cannot be 1.
All the cells in the chain are bivalue. Pick any cell in the chain, set it to one of its two values, and follow the implications down the chain. One of the ends will be a 1. Set that cell to its other possible value and follow the implications down the chain. A 1 will appear at the other end.
Example:
r4c6 can be 7 or 9. Let's assume it's a 7. That means that r4c4 cannot be 7, it must be 6. If r4c4 is a 6, then r6c4 cannot be a 6, it must be a 1.
If r4c6 is a 7, r6c4 is forced to 1.If we assume that r4c6 is a 9, then r4c2 cannot be a 9. It must be a 5. If r4c2 is a 5, r8c2 cannot be a 5, it must be a 9. If r8c2 is a 9, then r8c5 cannot be a 9. It must be a 1.
If r4c6 is a 9, r8c5 is forced to 1.Any way you slice it, it's guaranteed that r6c4 or r8c5 is a 1.
Therefore r5c5 and r6c5, which see both r6c4 and r8c5, cannot possibly be 1.