Полигональное число - это число точек в k
-гоне размера n
.
Вам будет предоставлена n
и k
, и ваша задача состоит в том, чтобы написать программу / функцию , которая выводит / выводит соответствующий номер.
счет
Это код-гольф . Самое короткое решение в байтах побеждает.
пример
Номер 3
шестнадцатеричного числа ( k=6, n=3
) - 28
потому что есть 28
точки выше.
Testcases
Может быть сгенерирован из этого набора тестов Pyth .
Использование: две строки в каждом тесте, n
выше, k
ниже.
n k output
10 3 55
10 5 145
100 3 5050
1000 24 10990000
Дальнейшая информация
- В Википедии: https://en.wikipedia.org/wiki/Polygonal_number
- В Wolfram Mathworld: http://mathworld.wolfram.com/PolygonalNumber.html
- В OEIS Wiki: http://oeis.org/wiki/Polygonal_numbers
- Последовательности OEIS для n -угольных чисел для различных n : 3 (A000217) , 4 (A000290) , 5 (A000326) , 6 (A000384) , 7 (A000566) , 8 (A000567) , 9 (A001106) , 10 (A001107) , 11 (A051682) , 12 (A051624) , 13 (A051865) , 14 (A051866) , 15 (A051867) , 16 (A051868) , 17 (A051869) , 18 (A051870) , 19 (A051871) , 20 (A051872) , 21 (A051873) , 22 (A051874) , 23 (A051875) , 24 (A051876)
n=3
иk=6
в свой набор тестов, вы получите15
. Если вы вставитеn=4
иk=6
вы получите28
.Ответы:
Желе , 7 байт
Это использует формулу
вычислить n- е s -гональное число.
Попробуйте онлайн!
Как это устроено
источник
Гексагония , 25 байтов
Развернутая:
Читает
k
первый иn
второй (используя любой разделитель).Попробуйте онлайн!
объяснение
Программа полностью линейна, но, как обычно, в Hexagony, порядок выполнения повсюду:
Дорожки выполнены в следующем порядке: серый , темно-синий , красный , светло-синий , темно-зеленый , розовый . Как видите, три
/
действуют только для перенаправления потока. Кроме того.
, нет опс. Разбирая все гексагональные фантазии, получаем линейную программу:Это вычисляет стандартную формулу
как и большинство других ответов. Для этого используются следующие пять ребер памяти, причем указатель памяти (MP) начинается, как показано красным:
Вот как это делается:
источник
05AB1E , 8 байтов
Код:
Объяснение:
Использует кодировку CP-1252 . Попробуйте онлайн! ,
источник
Лабиринт , 13 байт
Попробуйте онлайн!
объяснение
Благодаря своим односимвольным командам (которые являются просто необходимостью двумерности языка), Labyrinth может удивительно играть в гольф для линейных программ.
Это использует ту же формулу, что и несколько других ответов:
В этот момент указатель инструкции попадает в тупик и оборачивается. Теперь
+
выполняется снова, что является запретом (поскольку дно стека неявно заполнено бесконечным количеством нулей), а затем/
пытается выполнить деление на ноль, которое завершает программу с ошибкой.источник
JavaScript (ES6),
2422 байтаПояснение: каждый n-угольник можно рассматривать как n точек вдоль одной стороны плюс k-2 треугольника размера n-1, то есть n + n (n-1) (k-2) / 2.
источник
k--*n--+2-n
не проверял, хотя(k,n)=>n*(--k*--n-n+2)/2
все еще 24 байта.--n
для(n-1)
. D'о!k=>n=>n+n*--n*(k-2)/2
CJam, 13 байтов
Попробуйте онлайн
источник
APL (Dyalog Extended) , 11 байтов SBCS
Спасибо Адаму за помощь в предложении альтернативной версии.
Попробуйте онлайн!
объяснение
APL (Dyalog Unicode) ,
1211 байтов SBCSСпасибо Адаму за помощь в игре в гольф.
Редактировать: -1 байт от ngn.
Попробуйте онлайн!
Ungolfing
источник
На самом деле, 12 байтов
Попробуйте онлайн!
Объяснение:
источник
постоянный ток , 14 байтов
Попробуйте онлайн!
объяснение
Это использует следующую формулу (обратите внимание, что T n =
n*(n-1)/2
):источник
Ацето ,
1815 байтПорт DC Брюса Форте ответ :
Сэкономили 3 байта, поняв, что любая «чистая» (без комбинированных команд) программа Aceto может быть написана линейно.
источник
MathGolf , 8 байт
Попробуйте онлайн!
Альтернативный 8-байтный
┼┐*½\⌡*+
, который принимает входные данные в обратном порядке.источник
> <> , 13 байт
Попробуйте онлайн!
источник
Mathematica, 17 байт
Прямое применение формулы.
использование
источник
J, 14 байт
На основании формулы.
использование
объяснение
источник
TI-Basic, 20 байтов
источник
Язык GameMaker, 44 байта
источник
Python 3,
313028 байтПрямое уравнение из этой статьи вики
Спасибо @Mego за сохранение байта!
источник
Фурье, 18 байт
Попробуйте это на FourIDE!
Принимает k как первый вход и n как второй вход. Использует формулу:
Пояснение псевдокод:
источник
Excel, 22 байта
Вычисляет
A1
thB1
-угольное число.источник
Java 8, 21 байт
Все индивидуальные ответы одинаковой длины в байтах:
Объяснение:
Попробуй это здесь.
источник
Japt ,
1412 байтПопытайся
источник
Шелуха , 9 байт
Попробуйте онлайн!
объяснение
Используя ту же формулу, что и в моем
dc
ответе:источник
APL (NARS), 16 символов, 32 байта
Это основано на том факте, что кажется n × (n-1) / 2 = сумма (1..n-1) тест:
источник