Ok, let's consider the puzzle creation process. How do we create a "nice" FP puzzle from scratch?
By "nice" I would imagine that we want something like an NC puzzle, only with additional FP's that we can exploit to reduce the givens.
For this example I will work with minimal-singles puzzles. These are minimal puzzles wrt the "solvable by singles only" property. Removal of any clue might still leave a valid puzzle, but not one that is singles-only.
An excellent place to start is with a known NC grid. I scanned the NC catalog and counted how many FP's could be applied to each, and reported the first instance of any grid with NFP = 9 … 18. The results were:
- Code: Select all
9: 615384729847926153392571486974253861538617294261849537483162975726495318159738642
10: 538162497261794835947538261794253618352816974186479352813947526479625183625381749
11: 583792461927164835641538297168253974794816352352479618835927146279641583416385729
12: 175394826628571394394826157849263571263715948517948263751482639936157482482639715
13: 927385146583641729146927385794253861352816497618479253461792538835164972279538614
14: 715386924962741358384925716847253169629417583153869247538692471296174835471538692
15: 571482936936157284284639751849263517362715849715948362157394628493826175628571493
16: 526947183749381526183625749618253974974816352352479618835792461297164835461538297
18: 526947183749381526183625749618253974974816352352479618835794261497162835261538497
Total grids by NFP:
nfp = 9, ng = 63714
nfp = 10, ng = 2544
nfp = 11, ng = 2602
nfp = 12, ng = 19786
nfp = 13, ng = 733
nfp = 14, ng = 648
nfp = 15, ng = 2999
nfp = 16, ng = 5528
nfp = 18, ng = 15352
As you can see there is an ample supply. I think the Goldilocks zone is NFP = 11 to 14. Too high and the solutions get too close to looking like the MC grid, too low and we don't have enough "spare" FP's to play with.
I chose the first reported NFP = 14 case.
- Code: Select all
+-------+-------+-------+
| 7 1 5 | 3 8 6 | 9 2 4 |
| 9 6 2 | 7 4 1 | 3 5 8 |
| 3 8 4 | 9 2 5 | 7 1 6 |
+-------+-------+-------+
| 8 4 7 | 2 5 3 | 1 6 9 |
| 6 2 9 | 4 1 7 | 5 8 3 |
| 1 5 3 | 8 6 9 | 2 4 7 |
+-------+-------+-------+
| 5 3 8 | 6 9 2 | 4 7 1 |
| 2 9 6 | 1 7 4 | 8 3 5 |
| 4 7 1 | 5 3 8 | 6 9 2 |
+-------+-------+-------+
Its FP list as a TT: Show - Code: Select all
. X . . . . . X X
X . X . . . . X .
. X . X . X . . .
. . X . X X . . .
. . . X . X . . X
. . X X X . X . .
. . . . . X . X .
X X . . . . X . X
X . . . X . . X .
The FP's additional to the standard NC set are: {1,8}, {1,9}*, {2,8}, {3,6}, {4,6}, {5,9} (* so it's really an NC+ with 5 extra FP's).
Then I did a random reduction to a minimal-singles NC puzzle. This one has 13 givens:
- Code: Select all
d:\SudokuFP\Solver>GenMinimalS
715386924962741358384925716847253169629417583153869247538692471296174835471538692
NC mode
Singles mode
Clues = 16
13: ...3..9..962...........5.1........................924.....9...1.9................
Then I used the full FP set, and from the 13-given puzzle obtained a list of 8 minimal-singles puzzles with 6/7 givens:
- Code: Select all
d:\SudokuFP\Solver>GenMinimalS x
715386924962741358384925716847253169629417583153869247538692471296174835471538692
FP mode, NFP = 14
Singles mode
07: ..........62...........5.1................................9...1.9................
06: ..........62...........5.1.........................2............9................
06: .........9.2...........5.1.........................2..........1..................
06: .........9.2...........5.1........................9.4............................
06: .........9.2...........5.1........................92.............................
06: .........962...........5.1.........................2.............................
06: ......9..96............5.1.........................2.............................
06: ...3.....9.2...........5.1.........................2.............................
I could have skipped the first reduction altogether and simply reduced in FP mode directly, but I wanted to demonstrate that a minimal NC puzzle would have further redundancies when the grid had additional FP's.
If for some reason we wanted to obscure this grid's NC origins, we can simply rearrange the TT so it matches any chosen relabelling of the original grid. To do this is simple, if we want to swap values 3 and 7, we just swap rows 3,7 and cols 3,7 in the TT.
Next to consider is the direct construction method. Can we simply generate a random TT with, say, 11 or 12 entries and expect to get an equally good result? Or do we actually need those long NC chains …