Saya ingin menghasilkan Sudoku yang sepenuhnya acak .
Tentukan kisi Sudoku sebagai kisi bulat antara 1 dan 9 tempat beberapa elemen dapat dihilangkan. Kisi adalah teka-teki yang valid jika ada cara unik untuk menyelesaikannya agar sesuai dengan batasan Sudoku (setiap baris, kolom, dan kotak 3 × 3 tidak memiliki elemen berulang) dan minimal dalam hal itu (yaitu jika Anda menghilangkan lagi elemen puzzle memiliki beberapa solusi).
Bagaimana saya bisa menghasilkan teka-teki Sudoku acak, sehingga semua teka-teki Sudoku bisa digunakan?
algorithms
randomness
sudoku
Justin
sumber
sumber
Jawaban:
Menghasilkan distribusi seragam yang tepat dari semua teka-teki sudoku dapat dilakukan dengan cara itu: Anda hanya dapat membuat grid 9x9 secara acak dan kemudian hanya menyimpannya jika itu adalah kotak sudoku yang benar, jika tidak coba lagi.
Mungkin Anda melihat ke mana saya akan pergi: menjawab masalah ini dengan cara yang cerdas mungkin akan membuat Anda bertanya-tanya tentang simetri yang mendasari grid sudoku. Banyak pekerjaan yang dilakukan dalam arah ini untuk membuktikan fakta bahwa 17 adalah jumlah minimal petunjuk untuk sudoku ( lihat artikel ini ) dan Anda dapat pergi ke sini untuk melihat penghitungan tepat ini dari 5.472.730.538 kelas dari 3.359.232 kisi yang serupa, yang menggunakan ini simetri:
EDIT: untuk mengadaptasi ini ke teka-teki yang tidak lengkap, Anda dapat memilih secara acak bagian dari kisi Anda, periksa apakah solusinya unik dengan pemecah sudoku dan coba lagi jika tidak. Ini bukan distribusi yang seragam karena jumlah puzzle yang tidak lengkap dengan solusi unik mungkin berbeda untuk dua kisi. (Saya akan sangat terkejut jika tidak)
sumber