Tôi quan tâm làm một thực hiện các 14-15 puzzle: Làm thế nào tôi có thể đảm bảo rằng khi tôi xáo trộn câu đố của mình, tôi vẫn kết thúc với một hoán vị thậm chí?
tôi là tạo ra một mảng với các giá trị 0 - 15 trong thứ tự tăng dần:
S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
Bây giờ, những gì tôi muốn làm là trộn chúng để tạo ra một thể hiện mới của câu đố. Tuy nhiên, tôi biết rằng nếu tôi tạo ra một bảng với một "hoán vị lẻ" hơn là không thể giải quyết được.
Wikipedia nói rằng tôi cần phải tạo câu đố với một hoán vị thậm chí. Tôi tin rằng điều này có nghĩa rằng tôi chỉ đơn giản là phải làm đảm bảo tôi làm một số lượng thậm chí của các giao dịch hoán đổi?
Làm cách nào để sửa đổi Fisher-Yates để tôi đảm bảo rằng tôi kết thúc với một hoán vị thậm chí ở cuối? Nếu tôi thực hiện hoán đổi cho mỗi phần tử trong mảng có 16 hoán đổi mà tôi tin là một hoán vị thậm chí. Tuy nhiên, tôi có cần phải lo lắng về việc trao đổi với chính nó? Có cách nào khác để đảm bảo tôi có một câu đố hợp lệ không?
Tôi có thể sử dụng ngư cụ nhưng như tôi đã nói, tôi chỉ cần đảm bảo rằng tôi có hoán vị thậm chí. – Mithrax