8
分析地震
背景 在随机的Domino自动机是一个地震玩具模型,通过元胞自动机的启发。在此挑战中,您的任务是模拟该模型的简化版本,并从中收集数据。 自动机定义在位阵列上A,k位阵列表示可能发生地震的断层线。数组在其边界处环绕。条件A[i] = 0意味着位置i被放松,并且A[i] = 1手段,它的兴奋,或包含存储的能量。在每个时间步长,均一地随机选择阵列的一个位置。如果该位置放松,它将变得兴奋(将势能添加到系统中)。如果该位置已被激发,则将引发地震,并且所选位置和与其连接的所有激发位置将再次放松。放松的激发位置数就是地震的幅度。 例 考虑数组 100101110111 长度为12。如果随机过程从左侧选择第二个位,则数组将更新为 110101110111 ^ 由于所选位(标有^)为0。如果我们接下来从左边选择第四位,它是一个隔离的1,则触发震级为1的地震,并且该位0再次设置为: 110001110111 ^ 接下来,我们可以从右边选择第二个位,这将触发5级地震: 000001110000 ^ 请注意,1与所选择的“群集”相同的所有“ s”都是地震的一部分,并且数组在边界处环绕。 任务 您应将两个正整数k和用作输入t,您的任务是模拟随机的多米诺自动机的t时间步长,从k所有0s 的初始长度数组开始。您的输出应L为k整数列表,其中L[i](基于1的索引)包含i模拟过程中发生的震级数。您可以从输出中删除尾随零。 对于输入k = 15和t = 1000,一些代表性的输出是 [117, 97, 45, 26, 10, 5, 3, 1, 3, 0, 0, 0, 0, 0, 0] [135, 91, 58, 21, 8, 2, …