Hi urhegyi,
urhegyi wrote:Last step was this AIC: If R1C3=8 ==> R2C3<>8=7 else R1C3=2(R1C7<>2;R3C9=2;R3C9<>5;R9C9=5;R9C9<>8;R9C7=8;R12C7<>8;R1C7=9;R2C7=3;R2C9=8;R2C3<>8=7).
Conclusion in both cases R2C3=7 and R2C1=9.
Can someone help me to write this in correct notation?
Yes, but it gets a bit complicated because the logic is not linear. There are many options to write such logic, but none are as easy as basic AICs.
- Code: Select all
35...7.14.1.542.6.......7....5......8.....4.6....3...7..9..6.7....7..62..3.9.....
.-----------------.---------------.-------------------.
| 3 5 a28 | 68 69 7 | bf29-8 1 4 |
| 79 1 7-8 | 5 4 2 | f389 6 g38 |
| 49 69 2468 | 3 1 89 | 7 589 c258 |
:-----------------+---------------+-------------------:
| 1469 7 5 | 268 69 489 | 1289 3 128 |
| 8 2 3 | 1 7 59 | 4 59 6 |
| 1469 69 46 | 26 3 4589 | 1258 589 7 |
:-----------------+---------------+-------------------:
| 2 8 9 | 4 5 6 | 13 7 13 |
| 5 4 1 | 7 8 3 | 6 2 9 |
| 67 3 67 | 9 2 1 | e58 4 d58 |
'-----------------'---------------'-------------------'
1) The most powerful notation for any branching logic is a matrix, though not many might be familiar with them:
- Code: Select all
7x7 TM (Triangular Matrix)
--------------------------
8r1c3 2r1c3
2r1c7 2r3c9
5r3c9 5r9c9
8r9c9 8r9c7
2r1c7 8r1c7 9r1c7
8r2c7 9r2c7 3r2c7
8r2c9 3r2c9
==========================================
-8r1c7
-8r2c3
2) Another clear possibility (and a better one for presentation) is a Kraken Cell:
- Code: Select all
(2)r1c7 - (2=8)r1c3
||
(8)r1c7 - r9c7 = (8-5)r9c9 = (5-2)r3c9 = r1c7 - (2=8)r1c3
||
(9)r1c7 - (9=38)r2c79
=> -8 r1c7, r2c3; btte
3) If you want a one-line chain, then a memory chain is probably the easiest option:
- Code: Select all
(8=2*)r1c3 - r1c7 = (2-5)r3c9 = (5-8)r9c9 = r9c7 - (8|*2=93)r12c7 - (3=8)r2c9 => -8 r1c7,r2c3; btte
Note that memory chains are not valid AICs, though. They're easy to write when you need simple branching, but they're not exactly elegant.
4) If you want to avoid the memory to have a valid AIC, a nested contradiction chain is one option, though not necessarily very intuitive (or elegant):
- Code: Select all
(8=2)r1c3 - r1c7 = [!=(2-5)r3c9 = (5-8)r9c9 = r9c7 - (8=93)r12c7] - (3=8)r2c9 => -8 r1c7,r2c3; btte
5) Personally I'd probably write it as an AIC like this:
- Code: Select all
.-----------------.---------------.-------------------.
| 3 5 a28 | 68 69 7 | bd29-8 1 4 |
| 79 1 7-8 | 5 4 2 | d389 6 e38 |
| 49 69 2468 | 3 1 89 | 7 589 c258 |
:-----------------+---------------+-------------------:
| 1469 7 5 | 268 69 489 | 1289 3 128 |
| 8 2 3 | 1 7 59 | 4 59 6 |
| 1469 69 46 | 26 3 4589 | 1258 589 7 |
:-----------------+---------------+-------------------:
| 2 8 9 | 4 5 6 | 13 7 13 |
| 5 4 1 | 7 8 3 | 6 2 9 |
| 67 3 67 | 9 2 1 | d58 4 c58 |
'-----------------'---------------'-------------------'
(8=2)r1c3 - r1c7 = (25)r39c9 - (2|5=893)r192c7 - (3=8)r2c9 => -8 r1c7,r2c3; btte
The last option is the cleanest and the shortest, but it might be the hardest to write correctly. It's not necessarily easy to understand either, depending on one's experience with non-trivial AICs.
Those are the options I could quickly come up with. As you can see, none are exactly trivial. It's the nature of the game when the logic needs branching.
This solved the sudoku by singles.
Actually you need one claiming, too. A tiny difference, but we make that distinction by marking it 'btte' (basics to the end) instead of 'stte' (singles to the end).
PS. Next time, please attach the puzzle string and the pencil mark grid in text format. You can easily export those from Hodoku (Edit::Copy Givens; Edit::Copy Candidates).