Sudoku: Difference between revisions

Content added Content deleted
Line 4,270: Line 4,270:
| Some seqx when Seq.isEmpty seqx -> some sx
| Some seqx when Seq.isEmpty seqx -> some sx
| Some seq -> Ok seq
| Some seq -> Ok seq
| _ -> Error "Another error"
| _ -> Error "No solution"
// Choose the unfilled square(s) s with the fewest possibilities
// Choose the unfilled square(s) s with the fewest possibilities
[for s in squares do if Seq.length values[s] > 1 then Seq.length values[s] ,s]
[for s in squares do if Seq.length values[s] > 1 then Seq.length values[s] ,s]
Line 4,317: Line 4,317:
printfn $"Puzzles:{num}, Total:{total} ms, Average:{((float total) /(float num))} ms"
printfn $"Puzzles:{num}, Total:{total} ms, Average:{((float total) /(float num))} ms"


printfn "Press any key to exit"
Console.ReadKey() |> ignore
Console.ReadKey() |> ignore
0
0
Line 4,387: Line 4,386:
5 9 8 |7 3 6 |2 4 1
5 9 8 |7 3 6 |2 4 1


Elapsed milliseconds = 28 ms
Elapsed milliseconds = 9 ms
First 10000 puzzles in sudoku17
First 10000 puzzles in sudoku17
Puzzles:10000, Total:67072 ms, Average:6.7072 ms
Puzzles:10000, Total:51304 ms, Average:5.1304 ms</pre>
Press any key to exit</pre>


===The Function SLPsolve===
===The Function SLPsolve===