-
Giải game Sudoku bằng Excel
Noname > 19-09-19, 06:45 PM
Giới thiệu Games Sudoku : Bổ sung sau
Giải thuật:
1. Điền các ô trống các số 123456789
2. Nếu kiểm tra nhóm (9 ô), hàng, cột có ô có len =1 thì xóa số đó trong các ô khác thuộc hàng/nhóm tương ứng
3. Nếu kiểm tra nhóm, hàng, cột có ô len =2, và countif (vùng kiểm tra, giá trị của ô đó) =2
Thì xóa 2 số đó ở các ô còn lại trong vùng kiểm tra
4. Lặp lại quá trình tính toán từ bước 2 - đến khi hoàn thành (đang thử nghiệm nên để 20 lần thôi)
tới đây thì bí. Ai có ý gì hay góp thêm cho vui nhé
đang hoàn thiện. Tính còn mấy ô nữa mà đang bí
Ví dụ mẫu là bài Sudoku mình chọn thể loại khó nhất. (chuyên gia)
Mọi người có thể vào trang sau để lấy mẫu
https://sudoku.com/vi/chuyen/
File mẫu.
Mọi người nhập vào game Sudoku từ ô A1 tới ô I9,
Nhấn Ctrl + W để tự tính toán.
https://www.dropbox.com/s/d5ozv8d95tpzrej/Su.xlsm?dl=0
-
RE: Giải game Sudoku bằng Excel
ongke0711 > 20-09-19, 10:40 AM
Tôi mới chơi tới cấp độ khó mà còn trầy trật, bác giải tới cấp độ chuyên gia luôn. -
RE: Giải game Sudoku bằng Excel
Noname > 20-09-19, 02:23 PM
Giải thuật:
1. Điền các ô trống các số 123456789
2. Nếu kiểm tra nhóm (9 ô), hàng, cột có ô có len =1 thì xóa số đó trong các ô khác thuộc hàng/nhóm tương ứng
3. Nếu kiểm tra nhóm, hàng, cột có ô len =2, và countif (vùng kiểm tra, giá trị của ô đó) =2
Thì xóa 2 số đó ở các ô còn lại trong vùng kiểm tra
Thêm được 1 bước:
4. Kiểm tra trong 1 nhóm, Quét từ 1 đến 9, nếu count của hai số đều bằng 2 và 2 số chung 1 địa chỉ ô, thì xóa hết các số khác trong ô đó.
5. Lặp lại quá trình tính toán từ bước 2 - đến khi hoàn thành (đang thử nghiệm nên để 20 lần thôi)
Ví dụ xét vùng: A1:C3
Có hai ô có số 7, và 5 là A2= 124579 và B4= 35678
Các ô còn lại trong vùng không xuất hiện số 5 và 7, thì ta gán: A2=57, B4=57
Tương tự cho 9 cột và 9 dòng.
ps: Trên mạng họ có share 1 giải thuật đệ quy. Trên nguyên tắc phép thử và quay lại bước trước đó nếu sai.
Nhưng theo mình đó không phải là giải thuật mà là cách tính "mò" như kiểu mò password pruceforce ý, nên mình không đưa vào chủ đề này. -
RE: Giải game Sudoku bằng Excel
Noname > 21-09-19, 11:12 AM
Cập nhật thêm bước 5 giải thuật, link down file mẫu cập nhật bài 1:
Giải thuật:
1. Điền các ô trống các số 123456789
2. Nếu kiểm tra nhóm (9 ô), hàng, cột có ô có len =1 thì xóa số đó trong các ô khác thuộc hàng/nhóm tương ứng
3. Nếu kiểm tra nhóm, hàng, cột có ô len =2, và countif (vùng kiểm tra, giá trị của ô đó) =2
Thì xóa 2 số đó ở các ô còn lại trong vùng kiểm tra
Thêm được 1 bước:
4. Kiểm tra trong 1 nhóm, Quét từ 1 đến 9, nếu count của hai số đều bằng 2 và 2 số chung 1 địa chỉ ô, thì xóa hết các số khác trong ô đó.
5. Xét 1 dòng r. Nếu có giá trị n có count(n)=2 thì
Kiểm tra 2 ô chứa n có nằm trên cùng 1 vùng 3x3 không.
Nếu nằm trên cùng 1 vùng thì: loại bỏ giá trị n, trừ 2 ô chứa n thuộc dòng r đã xét bên trên
Tương tự cho cột.
6. Lặp lại quá trình tính toán từ bước 2 - đến khi hoàn thành (đang thử nghiệm nên để 20 lần thôi) -
RE: Giải game Sudoku bằng Excel
Noname > 23-09-19, 04:21 PM
Bị vướng ở bước 7. Chưa biết viết code thế nào để tìm kiếm các số thỏa điều kiện như sau:
Xét cột F, ta thấy các ô F2=13, F3= 135 và F7= 35.
Suy ra, 3 số này phải nằm trong 3 ô này. Và không thể xuất hiện ở các ô khác trong cột F.
Vấn đề là viết code thế nào để kiểm tra được điều đó . -
RE: Giải game Sudoku bằng Excel
Noname > 24-09-19, 08:39 AM
Thật bất ngờ là sau khi hoàn thành bước 7 thì bài toán Sudoku- loại chuyên gia (siêu khó) được giải xong
Các bạn có thể down file mẫu và code ở bước 1.
Mình sẽ thử với các bài loại siêu khó khác. Theo dự đoán phải thêm 3-5 bước nữa thì giải thuật toàn diện Sudoku trên Excel mới hoàn thiện -
RE: Giải game Sudoku bằng Excel
ongke0711 > 24-09-19, 10:24 AM
(24-09-19, 08:39 AM)Noname Đã viết: Thật bất ngờ là sau khi hoàn thành bước 7 thì bài toán Sudoku- loại chuyên gia (siêu khó) được giải xong
Mình sẽ thử với các bài loại siêu khó khác. Theo dự đoán phải thêm 3-5 bước nữa thì giải thuật toàn diện Sudoku trên Excel mới hoàn thiện
bác tìm ra thuật toán giải nhanh thật.
À mà mới test với bài toán dưới đây là nó chưa ra kết quả.
-
RE: Giải game Sudoku bằng Excel
Noname > 24-09-19, 12:06 PM
(24-09-19, 10:24 AM)ongke0711 Đã viết:
(24-09-19, 08:39 AM)Noname Đã viết: Thật bất ngờ là sau khi hoàn thành bước 7 thì bài toán Sudoku- loại chuyên gia (siêu khó) được giải xong
Mình sẽ thử với các bài loại siêu khó khác. Theo dự đoán phải thêm 3-5 bước nữa thì giải thuật toàn diện Sudoku trên Excel mới hoàn thiện
bác tìm ra thuật toán giải nhanh thật.
À mà mới test với bài toán dưới đây là nó chưa ra kết quả.
Bài của @ongke0711 bị tính được tới đây sau 7 bước. Vậy quy luật của bước tiếp theo là gì nhỉ? -
RE: Giải game Sudoku bằng Excel
Noname > 24-09-19, 05:34 PM
Tuy chưa tìm ra lời giải đến kết quả cuối cùng, nhưng đến đây ta có thể dùng 1 cách đơn giản hơn nhiều là dùng phép thử.
Như bài của ongke0711, ta có thể thử với giá trị lần lượt là 4, sau đó là 6. Chưa đầy 3s sau sẽ cho kết quả như sau:
-
RE: Giải game Sudoku bằng Excel
Noname > 04-10-19, 10:25 AM
(24-09-19, 10:24 AM)ongke0711 Đã viết:
(24-09-19, 08:39 AM)Noname Đã viết: Thật bất ngờ là sau khi hoàn thành bước 7 thì bài toán Sudoku- loại chuyên gia (siêu khó) được giải xong
Mình sẽ thử với các bài loại siêu khó khác. Theo dự đoán phải thêm 3-5 bước nữa thì giải thuật toàn diện Sudoku trên Excel mới hoàn thiện
bác tìm ra thuật toán giải nhanh thật.
À mà mới test với bài toán dưới đây là nó chưa ra kết quả.
Do sai tham số ở bước thứ 5, nên lẽ ra bài của Ông kẹ đã giải được rồi mà thành ra bị vướng (ô: H1 và H3, số 4 là bắt buộc, bỏ sô1 4 ở các ô còn lại của vùng G1:I3
link down ở post 1.
Đã fix và giải được bài của ông kẹ. Cần 1 bài độ khó cao hơn.
Vẫn như cũ, dự đoán sẽ giải hoàn toàn Sudoku mức siêu khó qua 2-3 bước nữa