정사각형 Game of Life 그리드의 상태를 고려하여 이전 상태에서 진화 할 수 있었는지 아니면 생성 할 수 있었는지 결정합니다. 즉, 상태가 "Eden의 정원" 상태인지 식별하십시오 .
입력
1은 "alive"를 나타내고 0은 "dead"를 나타내는 상태의 사각형 격자입니다. 원하는 경우 0과 1 대신 두 개의 구별 가능한 기호를 선택할 수 있습니다.
그리드의 측면 길이는 0이 아니지만 자연수 1 <= N <= 20 일 수 있습니다.
입력 그리드 외부의 임의의 또는 모든 셀이이 세대에서 살아있을 수 있으며, 이들 중 일부 또는 전부가 이전 세대에서 살아 있었을 수있다. 고려할 우주는 무한하므로 경계 조건이 없습니다. 입력의 가장자리가 유니버스의 가장자리가 아닙니다. 특히 그리드가 줄 바꿈되지 않습니다.
입력은 행으로 구분 된 문자열 또는 단일 문자열의 형태 일 수 있습니다. 원하는 경우 추가 또는 (그리드 전후에) 그리드의 측면 길이 또는 영역을 추가 입력으로 사용할 수 있습니다.
허용되는 입력 형식 :
010,101,010
010101010
010
101
010
3 010101010
산출
다음 세대의 입력 상태로 이어질 수있는 이전 상태 (입력 그리드보다 큰 상태 포함)가없는 경우 "생성"
다음 세대의 입력 상태로 이어질 수있는 가능한 이전 상태 (입력 그리드보다 큰 상태 포함)가 하나 이상있는 경우 "진화"됩니다.
원하는 경우 "만들기"및 "진화 됨"대신 두 개의 식별 가능한 문자열 또는 숫자를 사용할 수 있습니다.
가능한 이전 상태가 입력과 구별 될 필요는 없습니다. 국가 자체가 다음 세대 인 경우 진화 된 것으로 간주해야합니다.
테스트 사례
010
101
010 Evolved
0101110100
0010101001
1011100110
0101111101
1001001111
1111001001
1011111010
0110011101
1001010100
0010111010 Created
작성된 테스트 케이스는 Achim Flammenkamp의 Game of Life 페이지 에서 가져옵니다 .
노트
이 도전 과제를 작성해 주신 Trichoplax에게 감사의 말씀을 전 합니다.
m
-by- 의 입력에n
대해 가능한 모든2^(m*n)
초기 상태를 테스트 하면 프로그램의 복잡성이 커지지 만 결과가 입력과 일치하는지 확인하여 문제를 해결합니다.