Thêm một câu trả lời khác để tạo ra một sudoku khó khăn mong muốn khi đang di chuyển.
Điều này có nghĩa rằng không giống như các phương pháp khác thuật toán chạy chỉ một lần và trả về một cấu hình sudoku phù hợp với những khó khăn mong muốn (với xác suất cao trong một phạm vi hoặc với xác suất = 1)
các giải pháp khác nhau để tạo ra (và xếp hạng) một khó khăn sudoku phải làm với human-based techniques and approaches, có thể là dễ dàng được xếp hạng.
Rồi một (sau khi đã tạo ra một cấu hình sudoku) lại phá được các sudoku với giải tự như con người và tùy thuộc vào kỹ thuật các giải sử dụng (ví dụ cặp, x-wing, cá kiếm vv) một tỷ lệ khó khăn cũng được chỉ định.
Vấn đề với cách tiếp cận này (và yêu cầu đối với trường hợp sử dụng tôi đã có)
Để tạo ra một sudoku với khó khăn nhất định, với phương pháp trước đó người ta cần để giải quyết một sudoku hai lần (một lần với thuật toán cơ bản và một lần với bộ giải mã giống như con người).
Người ta phải (trước) tạo nhiều sudokus chỉ có thể được xếp hạng là khó khăn sau khi được giải quyết bởi người giải quyết giống như con người. Vì vậy, người ta không thể tạo ra một sudoku mong muốn on-the-fly một lần.
Bộ giải mã giống như con người có thể phức tạp và trong hầu hết các trường hợp (nếu không phải tất cả) được ghép chặt với lưới 9x9 sudoku. Vì vậy, không có sự khái quát dễ dàng nào với các sudokus khác (ví dụ: 4x4, 16x16, 6x6, v.v.)
Đánh giá độ khó của kỹ thuật giống người rất chủ quan. Ví dụ: tại sao x-wing được chụp là khó khăn hơn các đĩa đơn bị ẩn? (Personaly đã giải quyết nhiều khó khăn xuất bản các câu đố sudoku manualy và không bao giờ sử dụng các kỹ thuật như vậy)
cách tiếp cận khác đã được sử dụng trong đó có những lợi ích sau:
- generalises tốt để sudokus tùy ý (9x9, 4x4, 6x6 , 16x16 vv ..)
- Cấu hình sudoku, với độ khó mong muốn, được tạo ra một lần và trực tiếp
- Xếp hạng độ khó là mục tiêu.
Cách thức hoạt động?
Trước hết, thực tế đơn giản là câu đố càng khó, càng cần nhiều thời gian để giải quyết.
Nhưng thời gian để được giải quyết có mối tương quan mật thiết với cả hai đầu mối (givens) và các phương án thay thế trung bình được điều tra cho mỗi ô trống.
Mở rộng của tôi previous answer, người ta nói rằng đối với bất kỳ câu đố sudoku số lượng tối thiểu của các đầu mối là một đặc tính khách quan của các câu đố (ví dụ for 9x9 grids the minimum number of clues for having a valid sudoku is 17)
Người ta có thể bắt đầu từ đó và tính toán số lượng tối thiểu của các đầu mối mỗi khó khăn mức độ (tương quan tuyến tính).
Bên cạnh đó tại mỗi bước của quá trình tạo sudoku, người ta có thể chắc chắn rằng các lựa chọn thay thế trung bình (được điều tra) mỗi ô trống nằm trong giới hạn nhất định (như một chức năng của khó khăn mong muốn)
Tùy thuộc vào việc các thuật toán sử dụng backtrack hay không (đối với trường hợp sử dụng đã thảo luận thuật toán không có backtracking), độ khó mong muốn có thể đạt được với xác suất = 1 hoặc với xác suất cao trong giới hạn (tương ứng).
Thử nghiệm sudokus được tạo bằng thuật toán này và xếp hạng khó dựa trên phương pháp trước (bộ giải mã giống như con người), cho thấy mối tương quan giữa tỷ lệ khó mong muốn và ước tính, cộng với khả năng tổng quát hơn cho cấu hình sudoku tùy ý.
(đã sử dụng trực tuyến này sudoku solver (và cũng this one) tương ứng tỷ lệ khó khăn của sudokus thử nghiệm)
Mã này có sẵn miễn on github sudoku.js (along with sample demo application), một phiên bản thu nhỏ của một người thợ xây CrossWord.js ô chữ chuyên nghiệp trong JavaScript, bởi cùng một tác giả
Không, không bao giờ tìm thấy bất cứ điều gì như thế. Một phần của sự việc là "khó khăn" là rất tương đối. – Mat
Tôi không tin điều này là có thể. Kỹ thuật duy nhất tôi biết là phải làm như bạn đề cập - tạo ra, cấp, ném ra ngoài nếu phạm vi khó khăn bên ngoài. Ngoài ra, như Mat cho biết, khó khăn để đo lường như các thuật toán khác nhau giải quyết những cách khác nhau. – Ryan
Tôi hiểu rằng, nhưng "tạo ra, tỷ lệ, vứt bỏ, tạo ra tỷ lệ, vứt bỏ, tạo ra, giữ" ý tưởng có vẻ cực kỳ không hiệu quả. Ngoài ra, hãy xem tất cả các trò chơi có tùy chọn tạo câu đố sudoku qua khó khăn (ví dụ: dễ, med, cứng) dường như làm như vậy trong một phần nhỏ giây, dường như không có khả năng là họ đang thực hiện việc này . Đặc biệt là các thiết bị trên thiết bị, như iphone hoặc android. – ZachLHelms