A Latin persegi adalah persegi yang ada telah berulang simbol baik dalam X atau kolom Y . Sebagai contoh:
ABCD
DABC
CDAB
BCDA
adalah salah satu kotak tersebut. Perhatikan bagaimana setiap kolom dan baris berisi permutasi dari 4 huruf yang sama.
Namun, persegi Latin kami memiliki masalah: Jika saya memutar baris kedua ( DABC
) 1 ke kiri, saya akan berakhir dengan ABCD
, yang identik dengan permutasi di atasnya. Jika tidak mungkin untuk memutar 1 kolom / baris dan mendapatkan kolom / baris lain, maka kami menganggap kuadrat tersebut aman untuk dirotasi .
Sebagai contoh:
ABCD
BDAC
CADB
DCBA
Apakah rotasi aman. Kotak memiliki properti berikut:
- Titik [0, N] menggunakan simbol Nth
- Titik [0, N] dan [N, 0] selalu merupakan simbol yang sama . (Saya juga ingin mengatakan bahwa [x, y] dan [y, x] juga selalu merupakan huruf yang sama, tetapi saya tidak dapat membuktikannya)
Tugas Anda adalah mencetak 1 kotak Latin yang aman untuk rotasi, ketika dilewatkan N. Saya tidak peduli jika Anda mengeluarkan huruf, angka, daftar, atau array 2D. Jika Anda menggunakan angka, kolom dan baris atas harus 0,1,2,3,...
(dalam urutan itu). Jika Anda menggunakan huruf, maka itu harusA,B,C,D,....
Misalnya, jika input Anda adalah 4, Anda harus mencetak:
0,1,2,3 0,1,2,3
1,3,0,2 or 1,0,3,2
2,0,3,1 2,3,1,0
3,2,1,0 3,2,0,1
Tidak ada kotak Latin aman rotasi dengan ukuran kurang dari 4. Saya tidak peduli apa program Anda lakukan jika N kurang dari 4. Untuk yang ingin tahu, jumlah kotak aman rotasi adalah (mulai dari 4): 2,5,5906,(too long to calculate)
Ini adalah kode-golf , jadi cobalah membuat jawaban sesingkat mungkin dalam bahasa favorit Anda!
sumber
N
kualitas acak yang kurang?)1,2,3,...
?Jawaban:
Pyth - 29 byte
Paksaan.
n=4
Meskipun tidak selesai online , tetapi Anda dapat mencobanya secara lokal, atau menjalankan versi modifikasi ini secara online untuk satu byte lagi .sumber
Sqlserver 2012 - 918 bytes
Di kotak saya ini berjalan untuk @ k = 5, meskipun butuh 16 detik.
Ini adalah kode pembuatan kode (hati-hati Skynet, Anda memiliki persaingan)
Apakah ada harga untuk skrip terpanjang?
Coba online!
sumber