정보
1에서 9까지의 숫자는 각각 Moore 's Neighborhood의 셀을 나타내고 5는 중앙 셀입니다. 그래서:
123
456
789
1={-1,-1} 2={-1, 0} 3={-1, 1}
4={ 0,-1} 5={ 0, 0} 6={ 0, 1}
7={ 1,-1} 8={ 1, 0} 9={ 1, 1}
도전
STDIN, ARGV 또는 함수 인수를 통해 입력을 받아 결과를 리턴하거나 STDOUT에 인쇄 할 수 있습니다. 입력은 N x N 그리드 (x 또는 y가 <1이면 x 또는 y = N이고 x 또는 y> N이면 x 또는 y = 1 인 경우를 의미하는 토 오스 토폴로지)이며 프로그램은 그 중 하나의 간섭을 출력해야합니다. 각 셀을 Moore 's Neighborhood 셀의 값으로 바꿉니다.
입력 그리드 예 (2 x 2) :
13
79
산출:
97
31
설명:
위치 1,1에서 시작하면 값 1이 있습니다. 값 1 = {-1, -1}이므로 1 + (-1), 1 + (-1) = 0,0을 검색해야합니다. 그리고 그것은 원환 체 0,0이기 때문에 우리는 N으로 감 쌉니다. 그래서 우리는 위치 1,1 (1)에서 셀 값을 위치 2,2 (9)에서 검색합니다.
다음 셀 1,2의 경우 값 3 (=-1, 1)이 있으므로 1 + (-1), 2 + (1) = 0,3입니다. 값 7 인 2,1로 감 쌉니다.
2,1의 다음 셀 값은 7 (= 1, -1)이므로 2+ (1), 1 + (-1) = 3,0입니다. 값 3 인 1,2로 줄 바꿈합니다.
2,2의 다음 셀 값은 9 (= 1, 1)이므로 2+ (1), 2 + (1) = 3,3입니다. 값 1 인 1,1을 감 쌉니다.
더 많은 예
입력 그리드 (3 x 3) :
123
456
789
예상 출력 :
987
654
321
입력 그리드 (5 x 5) :
77497
81982
32236
96336
67811
예상 출력 :
28728
37337
11923
73369
77433
최종 노트
질문이 있으시면 언제든지 주저하지 마십시오. 이것은 코드 골프 도전, 가장 짧은 코드 승리입니다!