Skip to content

maxwellgerber/Sudoku.py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TL,DR:

NxN Sudoku Solver implemented in Python with backtracking

Background:

Originally made to solve Project Euler #96. I looked at a few writeups for different Sudoku solvers, but couldn't find anything really satesfactory for the larger Sudoku variants. I decided an NxN solver would be a fun thing to build.

Writeup:

A Sudoku matrix with blocksize N can be encoded as an N^2*N^2 matrix, or an N^4 array. For blocksize 3 the indicies look like this:

  0   1   2    3   4   5    6   7   8
  9  10  11   12  13  14   15  16  17
 18  19  20   21  22  23   24  25  26

 27  28  29   30  31  32   33  34  35
 36  37  38   39  40  41   42  43  44
 45  46  47   48  49  50   51  52  53

 54  55  56   57  58  59   60  61  62
 63  64  65   66  67  68   69  70  71
 72  73  74   75  76  77   78  79  80

Similarly, for blocksize 4 they look like:

  0   1   2   3    4   5   6   7    8   9  10  11   12  13  14  15
16  17  18  19   20  21  22  23   24  25  26  27   28  29  30  31
32  33  34  35   36  37  38  39   40  41  42  43   44  45  46  47
48  49  50  51   52  53  54  55   56  57  58  59   60  61  62  63

64  65  66  67   68  69  70  71   72  73  74  75   76  77  78  79
80  81  82  83   84  85  86  87   88  89  90  91   92  93  94  95
96  97  98  99  100 101 102 103  104 105 106 107  108 109 110 111
112 113 114 115  116 117 118 119  120 121 122 123  124 125 126 127

128 129 130 131  132 133 134 135  136 137 138 139  140 141 142 143
144 145 146 147  148 149 150 151  152 153 154 155  156 157 158 159
160 161 162 163  164 165 166 167  168 169 170 171  172 173 174 175
176 177 178 179  180 181 182 183  184 185 186 187  188 189 190 191

192 193 194 195  196 197 198 199  200 201 202 203  204 205 206 207
208 209 210 211  212 213 214 215  216 217 218 219  220 221 222 223
224 225 226 227  228 229 230 231  232 233 234 235  236 237 238 239
240 241 242 243  244 245 246 247  248 249 250 251  252 253 254 255

and so on. (Generated with print_blk(N) function in sudoku.py). For each and every index, we would like to get the set of all relating indicies. This means every index in the same row, same column, and same block.

README to be finished at a later data

Pseudocode:

  TODO

About

NxN Sudoku Solver implemented in Python with backtracking

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published