A sequência Lehmer-Comtet é uma sequência tal que a (n) é a n- ésima derivada de f (x) = x x em relação a x, conforme avaliado em x = 1 .
Tarefa
Tomar um número inteiro não negativo, como entrada e saída do n ésimo termo da sequência Lehmer-Comtet.
Isso é código-golfe, então você deve minimizar o tamanho do arquivo do seu código-fonte.
Casos de teste
Aqui estão os dois primeiros termos em ordem (copiados do 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 bytes.-1
- a seqüência de OEIS começa em n = 0.Oitava com Pacote Simbólico,
3632 bytesO código define uma função anônima que gera uma variável simbólica com o resultado.
Experimente online!
fonte
Haskell , 57 bytes
Experimente online!
Não há embutidos para diferenciação ou álgebra. As saídas flutuam.
fonte
Python com SymPy ,
77755857 bytes1 byte salvo graças a @notjagan
17 bytes salvos graças a @AndersKaseorg
fonte
lambda n:diff('x**x','x',10).subs('x',1)
não requersympy.abc
.n
?x**x
porx^x
.SageMath ,
3332 bytesExperimente no SageMathCell
fonte
Python 3 , 150 bytes
Experimente online!
Complexidade de tempo de execução exponencial. Usa a fórmula dada na página OEIS.
fonte
n>=r>=0
salva um byte.0**n
depoissum(...)
.n<1
vez de0**n
Python3 + mpmath 52 bytes
-3 bytes, Obrigado @Zachary T
fonte
from mpmath import*
e a segunda paradiff(lambda x:x**x,1,n)
. (apenas remover espaços desnecessários)Python 3 ,
288261 bytesDiferenciação sem diferenciação embutida.
Experimente online!
Como funciona
Cada uma das cinco primeiras linhas define funções e suas derivadas e seus resultados quando avaliadas em
1
. Seus derivados também são funções.p
é poder ou sejaa*x^n
l
é logaritmo ou sejaln(x)
e
é exponencial ou sejaexp(x)
a
é adição ou sejaf(x)+g(x)
m
é multiplicação ou sejaf(x)*g(x)
Uso: por exemplo,
exp(ln(x)+3x^2)
seria representado comoe(l()+p(3,2))
. Letx=e(l()+p(3,2))
. Para encontrar sua derivada, liguex(1)
. Para encontrar seu resultado quando avaliado em1
, liguex(0)
.Bônus: diferenciação simbólica
fonte
exec
compactação. Experimente online!Pari / GP , 34 bytes
Experimente online!
fonte