Diberikan bilangan bulat positif n < 10
, buat matriks 2 dimensi di mana setiap lokasi diisi dengan x
dan y
indeksnya (mulai dari kiri atas).
Sebagai contoh:
Input: 2
00 10
10 11
Input: 3
00 10 20
01 11 21
02 12 22
Setelah kisi-kisi dibuat, isilah setiap indeks secara acak. Ini bisa dengan 'x' atau cara lain untuk menunjukkan tempat telah diisi.
Anda menentukan lokasi mana yang harus diisi dengan membuat indeks secara acak untuk mengisi matriks. Anda hanya dapat mengisi n ^ 2 kali sehingga Anda tidak dapat mengisi sebanyak yang Anda inginkan sampai matriks terisi penuh. Pada akhirnya, matriks harus diisi sehingga Anda harus melakukan beberapa pekerjaan untuk memastikan bahwa Anda memeriksa angka acak yang Anda gunakan untuk memastikan bahwa tempat itu belum diisi.
Segarkan atau cetak setelah setiap isian untuk menunjukkan perkembangan iterasi isian.
Contoh untuk mengisi:
Input: 2
00 10
01 11
00
dipilih secara acak:
XX 10
01 11
01
dipilih secara acak:
XX 10
XX 11
00
dipilih secara acak, tetapi karena sudah dipilih daftar ulang memilih 10
:
XX XX
XX 11
11
dipilih secara acak:
XX XX
XX XX
Jangan mencetak angka acak karena secara visual saya harus dapat melihat indeks mana yang dipilih. Maksud saya jangan mencetak " 11
dipilih secara acak:". Itu di sini untuk eksplorasi.
Karena ini adalah kode-golf, kode terpendek akan menang.
Bersenang-senang dan senang bermain golf!
n>= 10
mungkin? (Anda harus mulai tahu tentang panjang maksimum untuk mengisi 0 di awal dengan benar). Isi untuk kasus itu adalah satu indeks pada satu waktu, bukan 1 digit pada suatu waktu, kan?Jawaban:
05AB1E , 29 byte
Cobalah online!
Spasi dipilih sebagai karakter untuk nomor yang dihapus (karena terlihat bagus), tetapi bisa diganti dengan karakter apa pun tanpa memengaruhi byte-count.
Penjelasan
sumber
Pip ,
41403836 byte35 byte kode, +1 untuk
-S
bendera.Mengambil input dari argumen cmdline. Mengganti dengan spasi (karakter lain apa pun dimungkinkan untuk +1 byte). Iterasi output berturut-turut dipisahkan oleh satu baris baru (yang legal tetapi dapat membuatnya agak sulit dibaca). Cobalah online!
Segala macam trik kotor yang satu ini.Versi yang lebih pendek memiliki lebih sedikit trik kotor. : ^ (Penjelasan:sumber
n>=10
pengacakan tidak berfungsi dengan benar, tetapi masih hits brief. Untuk angka yang lebih besar dari 10 itu hanya menghilangkan di manaindex_i==index_j
. Ada ide di balik alasan mengapa itu terjadi?(mi@##Pmi@0)
bagian tersebut. Saya memasukkan beberapa byte pereduksi hacks yang bergantung pada indeks menjadi satu digit.##
, oke. Penggunaan asumsi yang bagus. Terima kasih atas penjelasannya haha.Groovy (202 Bytes)
Format output spesifik itu benar-benar mengacaukan jumlah byte saya, tetapi meh.
Cobalah: https://groovyconsole.appspot.com/edit/5171951567896576 (+9 byte untuk cetakan yang lebih cantik)
Tidak Disatukan:
Contoh Keluaran:
sumber
4x4
bujur sangkar berindeks 0 . Kotak itu sendiri hanya dipisahkan baris baru, serta setiap iterasi dipisahkan baris baru, sehingga output agak berjalan bersama.R,
848174 byteSekarang gunakan satu-pengindeksan daripada pengindeksan-nol. Singkirkan 7 byte berkat @Billywob.
Contoh output untuk N = 3
sumber
replace
:for(i in sample(N^2)){m[i]="XX";print(m)}
AWK, 229 byte
Saya menambahkan beberapa byte untuk memberikan output ruang antara setiap matriks.
Catatan: untuk membuatnya lebih 'acak' antara berjalan, panggilan ke
srand()
dapat ditambahkan selama 7 byte tambahan.Penggunaan dan keluaran setelah menyimpan kode di atas di
FILE
:sumber
PHP, 172 Bytes
Kerusakan
sumber
Python 2, 190 byte
sumber