Lummox JR wrote:- Code: Select all
`. a .|. c .`

. . .|. . .

. b .|. d .

At least c or d must contain 3 or 4. One could be 3 and the other 4, as far as we know at this point. This is a corollary of the fact that these two cells cannot hold both 1 and 2.

Okay, this may sound stupid, but I want to absolutely nail down my understanding of this pattern before I start a lot of coding.

I am a bit confused by your use of the word "or". I appear to have the same problem with it as Bill Clinton had with "is".

For example, when you say:

if e=34, then the other cell with 3 or 4 must appear in c or d

it is unclear to me exactly what you are saying. I think I understand it, but it is a bit ambiguous.

Let's look at the possible values for c and what they imply for d (the same applies in reverse, of course).

- Code: Select all
` c | d`

1 | 34 (because 2 would be a multisolution pattern)

2 | 34 (ditto on 1)

3 | 124

4 | 123

In the case where we are trying to find the 345 naked subset, no matter what the distribution is, we can always find a square in c|d that completes the subset,

ie: if c=1 or 2, use d=34 to make 34,35,45; if c=3, use c=3 to make 3,35,45, and likewise for c=4.

Am I on the right track here? I am pretty sure I understand and agree with the first example, but the ambiguity of your definition makes it hard to follow the later arguments. Please don't take this as criticism; it's just that the logical arguments are much more difficult for me than the coding of the heuristics once I understand them! I really would appreciate more explicit explanations.

For example, when you say:

At least c or d must contain 3 or 4

Do you mean:

1) at least c or d must contain the possibility 3 or 4?

2) one of the squares c or d must have actual final value 3 or 4?

From my analysis above, I expect that (2) is the case.

Moving on to the 12 hidden subset situation; am I correct in restating the logic as follows:

If e=126 (for example), and no other squares in the group have possibilities 12, then we can eliminate 6 because if e=6, then the only places for 1 and 2 are in c and d, and we know that at best, only one of them can contain a 1 or 2. So e must be either 1 or 2.

and (more subtly)

Knowing that e is 12 tells us that cd cannot be 34 or 43, just as they cannot be 12 or 21.

I'll leave it at that point for tonight. I again apologise for being so pedantic, but I really need to lock this down in my mind well enough that I can write an explanation that my 10-year-old son can follow. I find that if I can do that, the programming becomes much easier, and I tend to find implications and "edges" that I can feed back to you logicmeisters.

Oh yeah, in that regard, here's a question: are there higher-order variants of this pattern, like a 3-row,3-column,3-block,9-cell triple?

Or how about something that looks like this?

- Code: Select all
`. a b | e f .`

. c d | g h .