Последовательность Лемера-Контета является такой последовательностью, что a (n) является n- й производной функции f (x) = x x по x, что оценивается при x = 1 .
задача
Возьмите неотрицательное целое число в качестве входных данных и выведите n- й член последовательности Лемера-Конте.
Это код-гольф, поэтому вы должны минимизировать размер файла вашего исходного кода.
Тестовые случаи
Вот первые пару терминов в порядке (скопировано из OEIS)
1, 1, 2, 3, 8, 10, 54, -42, 944, -5112, 47160, -419760, 4297512, -47607144, 575023344, -7500202920, 105180931200, -1578296510400, 25238664189504, -428528786243904, 7700297625889920, -146004847062359040, 2913398154375730560, -61031188196889482880
D[x^x,{x,#}]/.x->1&
19 байтов.-1
- последовательность из OEIS начинается с n = 0.Октава с символическим пакетом,
3632 байтаКод определяет анонимную функцию, которая выводит символическую переменную с результатом.
Попробуйте онлайн!
источник
Haskell , 57 байт
Попробуйте онлайн!
Нет встроенных для дифференциации или алгебры. Выходы плавает.
источник
Python с SymPy ,
77755857 байт1 байт сохранен благодаря @notjagan
17 байтов сохранено благодаря @AndersKaseorg
источник
lambda n:diff('x**x','x',10).subs('x',1)
не требуетсяsympy.abc
.n
?x**x
наx^x
.SageMath ,
3332 байтаПопробуйте это на SageMathCell
источник
Python 3 , 150 байт
Попробуйте онлайн!
Экспоненциальная сложность выполнения. Использует формулу, приведенную на странице OEIS.
источник
n>=r>=0
сохраняет байт.0**n
послеsum(...)
.n<1
вместо0**n
Python3 + mpmath 52 байта
-3 байта, спасибо @Zachary T
источник
from mpmath import*
, а вторую наdiff(lambda x:x**x,1,n)
. (просто удаляя ненужные пробелы)Python 3 ,
288261 байтДифференциация без дифференциации встроенная.
Попробуйте онлайн!
Как это устроено
Каждая из первых пяти строк определяет функции, их производные и их результаты при оценке в
1
. Их производные также являются функциями.p
сила то естьa*x^n
l
является логарифмом т.е.ln(x)
e
экспоненциально, т.е.exp(x)
a
это дополнение то естьf(x)+g(x)
m
это умножение т.е.f(x)*g(x)
Использование: например,
exp(ln(x)+3x^2)
будет представлено какe(l()+p(3,2))
. Пустьx=e(l()+p(3,2))
. Чтобы найти его производную, позвонитеx(1)
. Чтобы найти его результат при оценке в1
, позвонитеx(0)
.Бонус: символическая дифференциация
источник
exec
сжатие. Попробуйте онлайн!Пари / ГП , 34 байта
Попробуйте онлайн!
источник