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 .