Latar Belakang
The acak Domino Automaton adalah model mainan untuk gempa bumi, terinspirasi oleh automata seluler. Dalam tantangan ini, tugas Anda adalah untuk mensimulasikan versi model ini yang disederhanakan, dan mengumpulkan data darinya.
Otomat didefinisikan pada sebuah array A
dari k
bit, yang mewakili garis patahan yang gempa bumi dapat terjadi. Array membungkus di sekitar perbatasannya. Kondisi itu A[i] = 0
berarti posisi i
itu rileks , dan itu A[i] = 1
berarti ia bersemangat , atau mengandung energi yang tersimpan. Pada setiap langkah waktu, satu posisi array dipilih secara acak. Jika posisi itu rileks, ia menjadi bersemangat (energi potensial ditambahkan ke sistem). Jika posisi itu sudah bersemangat, itu memicu gempa bumi, dan posisi yang dipilih dan semua posisi bersemangat yang terhubung lagi menjadi rileks. Jumlah posisi tereksitasi yang menjadi rileks adalah besarnya gempa.
Contoh
Pertimbangkan array
100101110111
panjang 12. Jika proses acak memilih bit kedua dari kiri, array diperbarui ke
110101110111
^
sejak bit yang dipilih (ditandai dengan ^
) adalah 0
. Jika kita selanjutnya memilih bit keempat dari kiri, yang merupakan terisolasi 1
, gempa berkekuatan 1 dipicu, dan bit diatur ke 0
lagi:
110001110111
^
Selanjutnya, kita dapat memilih bit kedua dari kanan, yang memicu gempa berkekuatan 5:
000001110000
^
Perhatikan bahwa semua 1
s dalam "cluster" yang sama dengan yang dipilih adalah bagian dari gempa, dan array membungkus di perbatasan.
Tugas
Anda harus mengambil sebagai input dua bilangan bulat positif k
dan t
, dan tugas Anda adalah mensimulasikan otomat domino acak untuk t
langkah-langkah waktu, mulai dari k
array panjang awal semua 0
s. Output akan menjadi daftar L
dari k
bilangan bulat, di mana L[i]
(dengan pengindeksan berbasis 1) berisi jumlah gempa bumi besarnya i
yang terjadi selama simulasi. Anda diizinkan untuk meninggalkan nol yang tertinggal dari output.
Untuk input k = 15
dan t = 1000
, beberapa output representatif adalah
[117, 97, 45, 26, 10, 5, 3, 1, 3, 0, 0, 0, 0, 0, 0]
[135, 91, 58, 21, 8, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0]
[142, 63, 51, 31, 17, 4, 2, 1, 1, 0, 0, 0, 0, 0, 0]
[106, 75, 45, 30, 16, 8, 5, 2, 2, 0, 0, 0, 0, 0, 0]
[111, 96, 61, 22, 3, 8, 3, 2, 0, 0, 0, 1, 0, 0, 0]
Aturan
Program dan fungsi lengkap diizinkan. Hitungan byte terpendek menang, dan celah standar tidak diizinkan.
Perhatikan bahwa Anda tidak perlu mensimulasikan robot menggunakan implementasi tertentu, hanya masalah output.