배경
랜덤 도미노 오토 마톤 셀룰러 오토마타에서 영감 지진 장난감 모델이다. 이 과제에서이 모델의 단순화 된 버전을 시뮬레이션하고 해당 모델에서 데이터를 수집해야합니다.
오토 마톤은 비트 배열 A
로 정의 k
되며 지진이 발생할 수있는 결함 라인을 나타냅니다. 배열은 경계를 둘러 쌉니다. 조건의 A[i] = 0
위치가 있음을 의미 i
한다 완화 및 A[i] = 1
수단이 있다는 흥분 , 또는 에너지를 저장 포함되어 있습니다. 각각의 시간 단계에서, 어레이의 하나의 위치는 무작위로 균일하게 선택된다. 해당 위치가 완화되면 흥분됩니다 (잠재 에너지가 시스템에 추가됨). 해당 위치가 이미 여기 된 경우 지진이 발생하고 선택한 위치와 여기에 연결된 모든 여기 된 위치가 다시 완화됩니다. 이완되는 흥분된 위치의 수는 크기입니다 는 지진 입니다.
예
배열을 고려하십시오
100101110111
랜덤 프로세스가 왼쪽에서 두 번째 비트를 선택하면 배열은 다음과 같이 업데이트됩니다.
110101110111
^
(표시 선택된 비트 이후 ^
)이었다 0
. 다음으로 왼쪽에서 네 번째 비트 인 isolated 1
를 선택하면 크기 1의 eartquake가 트리거되고 비트가 0
다시 설정 됩니다.
110001110111
^
다음으로 오른쪽에서 두 번째 비트를 선택하면 5의 지진이 발생합니다.
000001110000
^
모든 것이 1
선택한 것과 동일한 "클러스터"에있는 s는 지진의 일부였으며 배열은 경계에서 둘러싸입니다.
작업
두 개의 양의 정수를 입력으로 취해야 k
하며 t
, 모든 s의 t
초기 길이 k
배열 부터 시작하여 시간 단계에 대해 무작위 도미노 자동 장치를 시뮬레이션하는 것이 임무입니다 0
. 당신의 결과는 정수 의 목록 L
이 되어야하며 k
, 여기서 L[i]
(1 기반 색인으로) 지진의 수를 포함합니다.i
을 사용하면 시뮬레이션 중에 발생한 됩니다. 출력에서 후행 0을 제거 할 수 있습니다.
입력 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, 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]
규칙
전체 프로그램과 기능이 모두 허용됩니다. 가장 짧은 바이트 수가 이기고 표준 허점은 허용되지 않습니다.
특정 구현을 사용하여 오토 마톤을 시뮬레이션 할 필요는 없으며 출력 만 중요합니다.