Есть много магических квадратов, но есть только один нетривиальный магический шестиугольник, как объяснил доктор Джеймс Грайм , а именно:
18 17 3
11 1 7 19
9 6 5 2 16
14 8 4 12
15 13 10
Как это делается в Hexagony, это проще всего записать одной строкой, просто читая ее строка за строкой:
18 17 3 11 1 7 19 9 6 5 2 16 14 8 4 12 15 13 10
Конечно, всего существует двенадцать таких представлений в списке этого магического шестиугольника, если учесть вращения и отражения. Например, вращение указанного шестигранника на 1/6 по часовой стрелке приведет к
9 11 18 14 6 1 17 15 8 5 7 3 13 4 2 19 10 12 16
@Okx попросил перечислить остальные варианты. Остальные списки:
15 14 9 13 8 6 11 10 4 5 1 18 12 2 7 17 16 19 3
3 17 18 19 7 1 11 16 2 5 6 9 12 4 8 14 10 13 15
18 11 9 17 1 6 14 3 7 5 8 15 19 2 4 13 16 12 10
9 14 15 11 6 8 13 18 1 5 4 10 17 7 2 12 3 19 16
плюс все упомянутые списки перевернуты.
Вызов
Напишите программу, которая выводит волшебный шестиугольник в виде списка. Вы можете выбрать любое из 12 отражений / поворотов шестиугольника.
Пожалуйста, добавьте несколько слов о том, как работает ваше решение.
Ответы:
Октава, 24 байта
Попробуйте онлайн!
источник
Желе , 11 байт
Ниладная ссылка, возвращающая список с заданной ориентацией, отражается слева направо.
Попробуйте онлайн!
Как?
Просто та вещь, ради которой я сделал
Œ?
источник
Pyth, 15 байт
(Управляющие символы заменены на
\x06
и\x11
для вашего удобства просмотра.)Попробуйте онлайн
Как это устроено
источник
05AB1E , 14 байтов
Оба решения генерируют список
[3,17,18,19,7,1,11,16,2,5,6,9,12,4,8,14,10,13,15]
Формирует список всех (отсортированных) перестановок диапазона
[1...19]
и индексирует в этот список с помощью 255 сжатых базовых 10 чисел.Или 15 байтов в режиме онлайн
Распаковывает строку 255 в число 10 и преобразует его в список из 20 цифр.
Попробуйте онлайн!
источник
SOGL , 15 байт
Объяснение:
источник
Желе , 21 байт
Я действительно хочу сжать это большое число, но я не уверен, как.
Попробуйте онлайн!
источник
18473955480703453
на 1 байт короче.ḃ250
и индексировать в кодовую страницу (что теперь проще, поскольку для нее есть ниладический атомØJ
).APL, 24 байта
Попробуйте онлайн!
Как?
источник
JavaScript (ES6), 49 байт
Показать фрагмент кода
источник
Mathematica, 37 байт
Объяснение (это может быть уже очевидно, так как Mathematica не является языком Codegolf, но в соответствии с требованием OP):
Выход:
источник
Japt , 27 байт
Вдохновленный решением rahnema1.
Попробуйте онлайн
источник