Arka fon
Rastgele Domino Otomat hücresel otomat esinlenerek depremler için bir oyuncak modelidir. Bu meydan okumada, göreviniz bu modelin basitleştirilmiş bir versiyonunu simüle etmek ve modelden veri toplamaktır.
Otomat bir dizi tanımlanır A
ve k
deprem meydana gelebileceği bir kırık hattı temsil bit. Dizi sınırlarında sarar. Koşul A[i] = 0
pozisyonu demek olduğunu i
edilmektedir rahat ve A[i] = 1
araçlar o oluyor o heyecan , ya da enerji depolanır içerir. Her bir zaman adımında, dizinin bir pozisyonu rastgele olarak eşit olarak seçilir. Bu pozisyon rahatlarsa, heyecanlanır (sisteme potansiyel enerji eklenir). Bu pozisyon zaten heyecanlıysa, bir depremi tetikler ve seçilen konum ve ona bağlı tüm heyecanlı konumlar tekrar rahatlar. Gevşeyen heyecanlı pozisyonların sayısı büyüklüktür depremin .
Misal
Diziyi düşünün
100101110111
Rastgele işlem soldan ikinci biti seçerse, dizi şu şekilde güncellenir:
110101110111
^
seçilen bit (işaretli ^
) olduğundan beri 0
. Daha sonra soldan dördüncü biti seçersek, bu izole edilmişse 1
, 1 büyüklüğünde bir deprem tetiklenir ve bit 0
tekrar olarak ayarlanır :
110001110111
^
Sonra, sağdan ikinci biti seçebiliriz, bu da 5 büyüklüğünde bir deprem tetikler:
000001110000
^
Tüm bunların 1
seçilmiş kişi ile aynı "küme" s depremin parçasıydı ve dizi sınırda sarar.
Görev
İki pozitif tamsayı girdi olarak alacaksınız k
ve t
göreviniz, tüm s'nin t
başlangıç uzunluk k
dizisinden başlayarak zaman adımları için rasgele domino otomatlarını simüle etmektir 0
. Çıktınız (1 tabanlı indeksleme ile) büyüklükte deprem sayısını içeren bir tamsayı listesi olmalıdır L
.k
L[i]
i
simülasyon sırasında meydana geldi. Çıktıdan sondaki sıfırları bırakmanıza izin verilir.
Girişler k = 15
ve t = 1000
bazı temsili çıkışlar için
[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]
kurallar
Hem tam programlara hem de işlevlere izin verilir. En kısa bayt sayısı kazanır ve standart boşluklara izin verilmez.
Belirli bir uygulamayı kullanarak otomasyonu simüle etmeniz gerekmediğini, yalnızca çıkışın önemli olduğunu unutmayın.