http://apollon.issp.u-tokyo.ac.jp/~watanabe/sample/sudoku/index_j.htmlに載っている数独の問題をRで解きます。
といっても、例によって必要なパッケージを呼び出して、関数一発です。
そう、数独用のパッケージがあるのです、Rならね。
install.packages("sudoku") library(sudoku) HW1 <- matrix(c(0,6,1,0,0,7,0,0,3, 0,9,2,0,0,3,0,0,0, 0,0,0,0,0,0,0,0,0, 0,0,8,5,3,0,0,0,0, 0,0,0,0,0,0,5,0,4, 5,0,0,0,0,8,0,0,0, 0,4,0,0,0,0,0,0,1, 0,0,0,1,6,0,8,0,0, 6,0,0,0,0,0,0,0,0), 9, byrow=TRUE) solveSudoku(HW1, verbose=TRUE) Inkara1 <- matrix(c(0,0,5,3,0,0,0,0,0, 8,0,0,0,0,0,0,2,0, 0,7,0,0,1,0,5,0,0, 4,0,0,0,0,5,3,0,0, 0,1,0,0,7,0,0,0,6, 0,0,3,2,0,0,0,8,0, 0,6,0,5,0,0,0,0,9, 0,0,4,0,0,0,0,3,0, 0,0,0,0,0,9,7,0,0), 9, byrow=TRUE) solveSudoku(Inkara1, verbose=TRUE) Inkara2 <- matrix(c(8,0,0,0,0,0,0,0,0, 0,0,3,6,0,0,0,0,0, 0,7,0,0,9,0,2,0,0, 0,5,0,0,0,7,0,0,0, 0,0,0,0,4,5,7,0,0, 0,0,0,1,0,0,0,3,0, 0,0,1,0,0,0,0,6,8, 0,0,8,5,0,0,0,1,0, 0,9,0,0,0,0,4,0,0), 9, byrow=TRUE) solveSudoku(Inkara2, verbose=TRUE)
結果はネタバレになるので書きません。
処理時間はHW1が0.39秒、Inkara1が3.12秒、Inkara2が10.95秒でした。