Hasil (
Bahasa Indonesia) 1:
[Salinan]Disalin!
Tantangannya adalah untuk mengatur N queens pada grid NxN sehingga Ratu tidak dapat "mengambil" Ratu lain apapun. Queens dapat bergerak horizontal, vertikal, atau sepanjang diagonal (45%). Diagram berikut menunjukkan solusi untuk N = 4 queens.Solusi untuk teka-teki ini dapat digambarkan sebagai permutasi khusus Daftar [1,2,3,4]. Sebagai contoh, solusi yang digambarkan di atas dapat diwakili sebagai [3,1,4,2], berarti bahwa, pada baris pertama tempat Ratu di 3 kolom, di tempat baris kedua Ratu dalam kolom 1, dll. Untuk menguji apakah permutasi diberikan adalah solusi, salah satu kebutuhan untuk menghitung apakah permutasi memiliki (atau mewakili situasi yang mana) dua atau lebih queens berbohong pada diagonal sama. Representasi itu sendiri mencegah Ratu dua atau lebih di baris yang sama atau kolom. Dua queens berada di sama / diagonal jika dan hanya jika jumlah baris dan kolom adalah sama untuk masing-masing; mereka berada di sama diagonal jika dan hanya jika perbedaan mereka baris dan kolom adalah nomor yang sama. Program Prolog berikut memiliki rincian; berasumsi bahwa predikat 'perm' dan 'bungkus' didefinisikan dalam bagian 2.7.Tujuan terakhir mencerminkan fakta bahwa ada 92 berbeda solusi queens tantangan teka-teki untuk 8 x 8 papan. Inefisiensi satu yang menderita program ini adalah bahwa setiap permutasi benar-benar dihitung sebelum ia akan diperiksa untuk melihat apakah ini merupakan solusi teka-teki. Sangat mudah untuk melihat bahwa hal ini tidak diperlukan. Sebagai contoh, menganggap bahwa "solusi parsial" P = [1,3,2,...] untuk pertimbangan. Perhitungan baris dan kolom menunjukkan sudah "2" tidak aman bergerak! Solusi yang menghindari inefisiensi ini dianggap bagian 2.13.
Sedang diterjemahkan, harap tunggu..
