Тетрация, представленная как
a^^b
, является повторным возведением в степень. Например,2^^3
есть2^2^2
, что 16.
Учитывая два числа a и b , выведите a^^b
.
Контрольные примеры
1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.
Научная запись приемлема.
Помните, это код-гольф , поэтому выигрывает код с наименьшим количеством байтов.
3 3 -> 7625597484987
3^3^3
автоматически означает3^(3^(3))
. См. En.wikipedia.org/wiki/Order_of_operations , где написано: «Сложенные экспоненты применяются сверху вниз, то есть справа налево».Ответы:
Дьялог АПЛ, 3 байта
TryAPL.
объяснение
источник
J,
54 байтаЭто буквально определение тетрации.
использование
объяснение
источник
2 ^ 2 ^ 2
оценивается как2 ^ (2 ^ 2)
и так далееHaskell, 19 байтов
Итерирует возведение в степень, начиная
1
с создания списка[1,a,a^a,a^a^a,...]
, а затем принимаетb
элемент 'th'.Той же длины напрямую:
Без очков дольше:
источник
Mathematica, 16 байт
объяснение
Сделайте б копии а.
Возведение.
источник
Python, 30 байт
Использует рекурсивное определение.
источник
Python, 33 байта
Это оценивает безымянную функцию, которая принимает строковое представление числа и числа. Например:
Если смешивание входных форматов, подобных этому, не учитывается, существует также 38-байтовая версия:
источник
Желе , 4 байта
Попробуйте онлайн! или проверьте все контрольные примеры .
Как это устроено
источник
Perl, 19 байт
Включает +1 для
-p
Дайте номера на отдельных строках на STDIN
tetration.pl
источник
R, 39 байт
Рекурсивная функция:
источник
Элемент , 11 байт
Попробуйте онлайн!
Это просто "простое" возведение в степень в цикле.
источник
JavaScript (ES7), 24 байта
Версия ES6 составляет 33 байта:
источник
f=a=>b=>b?a**f(a,b-1):1
dc,
3529 байтов:Вот моя первая полная программа в
dc
.источник
Perl, 40 байт
Принимает два целых числа в качестве входных данных для функции и выводит результат
источник
pop
чтобы получить$ARGV[1]
, затем используйте,"@ARGV"
чтобы получить$ARGV[0]
. Используйтеsay
вместоprint
(опция-M5.010
или-E
бесплатно). Но все равно,ARGV
это ужасно долго.-p
Программа почти всегда побеждаетНа самом деле , 6 байтов
Попробуйте онлайн!
Ввод принимается как
b\na
(\n
перевод строки)Объяснение:
источник
CJam , 9 байт
Попробуйте онлайн!
объяснение
источник
PHP, 51 байт
источник
GameMaker Language,
5250 байтисточник
Pyth, 6 байт
Попробуйте онлайн.
объяснение
источник
Минколанг 0,15 ,
1211 байтПопробуй это здесь!
объяснение
источник
Ракетка 51 байт
Ungolfed:
Тестирование:
Выход:
источник
Скала, 45 байт
Ungolfed:
Построить последовательность
a
s сb
элементами и применитьmath.pow
справа налево.источник
TI-Basic, 19 байтов
источник
Java 7,
7157 байтUngolfed & тестовый код:
Попробуй это здесь.
Выход:
источник
C, 50 байтов
Непосредственно из определения тетрации .
источник
05AB1E , 4 байта
Попробуйте онлайн!
3 байта, если аргументы можно поменять местами:
источник
a=5, b=2
должен выводить3125
. Я не уверен, в каком порядке вы принимаете входные данные, но, тем не менее, я положил 5 и 2, я получаю неправильный результат.Баш, 50 байт
(в пределах целого типа данных bash)
Golfed
объяснение
Создайте выражение с помощью printf, например, E 2 5:
затем используйте встроенное арифметическое расширение bash для вычисления результата
Тестовое задание
источник
Powershell, 68 байт
Это самый короткий из трех подходов, которые я пробовал, но не так уж и много, но я уверен на 100%, что есть более короткий подход, но несколько вещей, которые я попробовал, каким-то образом закончились с немного большим количеством байтов.
К сожалению, у Powershell нет встроенного оператора
^
или**
оператора, иначе это будет чистый ответ 32/33 байта, т.е.iex (,$args[0]*$args[1]-join"^")
источник
Аксиома 70 байт
это менее гольф
источник
Чудо , 21 байт
Использует рекурсивный подход. Использование:
Бонусное решение, 22 байта
Немного нетрадиционный подход. Использование:
Более читабельно:
Если предположить,
a^^b
:Создает бесконечный список тетратов
a
; ибоa=2
этот список будет выглядеть примерно так[2 4 16 65536...]
. Затем индексирует,b-1
потому что Wonder индексируется нулем.источник
Clojure, 56 байт
Может быть, есть более короткий путь через
apply comp
?источник