project-euler

https://projecteuler.net/
Log | Files | Refs | README

commit 39bfd8da6257d423841b77d7dda2c56a6efa8b15
parent bd3df9e46b0e3041ec5ac4c74ef417efa6cb79ee
Author: mpizzzle <m@michaelpercival.xyz>
Date:   Thu,  1 Oct 2020 20:57:53 +0100

more refactoring

Diffstat:
MEuler_96.cpp | 19+++----------------
1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/Euler_96.cpp b/Euler_96.cpp @@ -116,12 +116,10 @@ sudoku reduce(sudoku& puzzle) { int li1 = (l * 3) + ((i + 1) % 3), li2 = (l * 3) + ((i + 2) % 3), kj1 = (k * 3) + ((j + 1) % 3), kj2 = (k * 3) + ((j + 2) % 3); - if (((h[li1].find(x) != h[li1].end()) - && (h[li2].find(x) != h[li2].end()) + if (((h[li1].find(x) != h[li1].end()) && (h[li2].find(x) != h[li2].end()) && ((puzzle[i][kj1] > 0) || v[kj1].find(x) != v[kj1].end()) && ((puzzle[i][kj2] > 0) || v[kj2].find(x) != v[kj2].end())) || ( - (v[kj1].find(x) != v[kj1].end()) - && (v[kj2].find(x) != v[kj2].end()) + (v[kj1].find(x) != v[kj1].end()) && (v[kj2].find(x) != v[kj2].end()) && ((puzzle[li1][j] > 0) || h[li1].find(x) != h[li1].end()) && ((puzzle[li2][j] > 0) || h[li2].find(x) != h[li2].end()))) { found(puzzle, x, i, j, k, l, reduced, h, v, subgroup, missing); @@ -139,6 +137,7 @@ sudoku reduce(sudoku& puzzle) { return puzzle; } +//need to modify bifurcation to start with lowest branching factor rather than sequentially. sudoku bifurcate(sudoku bifurcation) { if (!check(bifurcation)) { return {}; @@ -157,18 +156,6 @@ sudoku bifurcate(sudoku bifurcation) { } } } - - if (bifurcation[8 - i][8 - j] <= 0) { - for (int k = 9; k > 0; --k) { - bifurcation[8 - i][8 - j] = k; - - sudoku candidate = bifurcate(bifurcation); - - if (check(candidate)) { - return candidate; - } - } - } } }