Информация
Числа от 1 до 9 представляют ячейку в районе Мура , где 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), и ваша программа должна вывести одно целое число сетки, заменяя каждую ячейку значением в ячейке Соседства Мура.
Пример входной сетки (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. Оборачивается на 2,1, что является значением 7.
Значение следующей ячейки в 2,1 равно 7 (= 1, -1), поэтому 2+ (1), 1 + (- 1) = 3,0. Оборачивается до 1,2, что является значением 3.
Значение следующей ячейки в 2,2 равно 9 (= 1, 1), поэтому 2+ (1), 2 + (1) = 3,3. Оборачивается на 1,1, что является значением 1.
Больше примеров
Сетка ввода (3 х 3):
123
456
789
Ожидаемый результат:
987
654
321
Входная сетка (5 х 5):
77497
81982
32236
96336
67811
Ожидаемый результат:
28728
37337
11923
73369
77433
Заключительные заметки
Если у вас есть какие-либо вопросы, не стесняйтесь комментировать. Это соревнование по коду, самый короткий код выигрывает!
Ответы:
APL (33)
APL был сделан для этого. Это функция, которая принимает входную сетку в качестве матрицы N-N и возвращает выходную сетку в качестве матрицы N-N.
Тестовое задание:
источник
Питон, 174
Python не был создан для этого ... APL был!
источник
Python, 105
Принимает и возвращает список списков:
Принимает и возвращает строку (148 символов):
источник
MATLAB - 121 байт
MATLAB был немного меньше для этого, чем APL, но немного больше для этого, чем Python. ;)
Тестовый вывод
источник