도전
STDIN에서 7 개의 숫자를 가져 와서 셀룰러 오토 마톤 (CA)의 2 차원 히스토리를 STDOUT으로 인쇄하는 완전한 프로그램을 작성해야합니다. 이것은 코드 골프입니다.
입력 형식 입력은 쉼표로 구분 된 7 개의 정수 / 문자열입니다. 첫 번째 숫자는 Wolfram 코드에 따른 규칙의 번호입니다 (각 규칙의 표준 이름). 두 번째는 초기 시작 구성입니다. 세 번째와 네 번째는 시작 구성 왼쪽에 어떤 패턴과 몇 번 추가해야하는지 설명합니다. 패딩으로. 다섯 번째와 여섯 번째는 오른쪽에 대해서도 동일합니다. 마지막 숫자는 시뮬레이션을 실행하는 세대 수입니다.
따라서 입력의 예는입니다 90,11,0,4,0,4,5
. 이것은 규칙 90을 실행하고 있음을 프로그램에 알려야합니다 . 또한 초기 구성에 11
문자열 0
이 양쪽 끝에 4 번 추가되도록하려면 실제 시작 패턴은 다음과 같습니다 0000110000
. 또한 5 세대 동안이 시뮬레이션을 실행하도록 프로그램에 지시합니다.
출력 프로그램은 각 세대 (줄 바꾸기로 구분)의 전체 셀 배열을 인쇄하여 출력이 CA의 시공간 다이어그램이되도록해야합니다. 각 세대에 대해, 각 셀의 상태는 입력으로서 제공된 규칙에 따라 셀의 상태 및 좌우의 셀 상태에 의해 결정된다. 시뮬레이션은 가장자리를 감싸 야합니다. 첫 번째로 인쇄되는 것은 gen으로 시작하는 배열이어야합니다. 0.
입력 90,11,0,4,0,4,5
은 가능한 한 정확하게 다음과 같은 출력이되어야합니다.
0000110000
0001111000
0011001100
0111111110
1100000011
0110000110
시작 상태는 5 세대에 포함되지 않습니다. 또한 시뮬레이션이 가장자리를 감싸는 것을 볼 수 있습니다.
더 많은 예
입력:
184,1100,01,2,01,1,4
산출:
0101110001
1011101000
0111010100
0110101010
0101010101
입력:
0,1011,1,0,0,1,2
산출:
10110
00000
00000