CJam ( 39 37 byte)
A,1>e!{5ew{2Mtz}2*::+)-!},3f/Ma*Sf*N*
Demo online (peringatan: mungkin memerlukan waktu lebih dari satu menit untuk berjalan, memicu permintaan "Batalkan skrip ini?" Dari browser).
Bekerja dengan memfilter semua grid yang mungkin digunakan 5ew
untuk memetakan
[a b c d e f g h i]
untuk
[[a b c d e]
[b c d e f]
[c d e f g]
[d e f g h]
[e f g h i]]
dan kemudian membuang elemen tengah dan elemen tengah satu sama lain untuk mendapatkan elemen
[[a b d e]
[b c e f]
[d e g h]
[e f h i]]
yang merupakan empat kotak.
Peter Taylor
sumber
sumber
Jawaban:
Python 3.5, 135 byte
Langsung memeriksa jumlah setiap kotak, dikurangi tengah. Kemungkinan besar masih golf dengan
itertools
aturan praktis "tidak perlu".sumber
Python2
327271270263260 byte------------
Ini ... tidak terlalu pendek tetapi tidak menggunakan perpustakaan. Ini secara acak memungkinkan persegi, memeriksa sihir, mencetaknya, dan merekamnya untuk mencegah duplikat. Setelah mencetak 376 kotak ajaib yang unik, ia berhenti.
Saya meminjam Generator Angka Acak Pseudo dari entri Keith Randall untuk golf bernama " Bangun generator angka acak yang lolos tes Diehard "
De-golf
sumber
Ruby 133
Pendekatan brute force langsung. Uji di sini .
sumber
J, 83 byte
Ini adalah fungsi yang menghasilkan string yang berisi 376 kotak kokoh. Menggunakan gaya kasar, menghasilkan semua permutasi 1 hingga 9, membentuk masing-masing menjadi array 3x3, dan menyaringnya dengan memeriksa apakah jumlah masing-masing subarray 2x2 sama. Selesai dalam setengah detik.
Pemakaian
sumber