Die Lehmer-Comtet-Folge ist eine Folge, bei der a (n) die n- te Ableitung von f (x) = x x in Bezug auf x ist, wie bei x = 1 ausgewertet .
Aufgabe
Nehmen Sie eine nicht negative ganze Zahl als Eingabe und geben Sie den n- ten Term der Lehmer-Comtet-Folge aus.
Dies ist Codegolf, daher sollten Sie die Dateigröße Ihres Quellcodes minimieren.
Testfälle
Hier sind die ersten paar Begriffe in der Reihenfolge (aus dem OEIS kopiert)
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
Sequenz von OEIS beginnt bei n = 0.Oktave mit Symbolpaket,
3632 BytesDer Code definiert eine anonyme Funktion, die mit dem Ergebnis eine symbolische Variable ausgibt.
Probieren Sie es online!
quelle
Haskell , 57 Bytes
Probieren Sie es online!
Keine eingebauten Funktionen zur Differenzierung oder Algebra. Ausgänge schweben.
quelle
Python mit SymPy ,
77755857 Bytes1 Byte gespeichert dank @notjagan
17 Bytes dank @AndersKaseorg gespeichert
quelle
lambda n:diff('x**x','x',10).subs('x',1)
benötigt nichtsympy.abc
.n
?x**x
durchx^x
.SageMath ,
3332 BytesProbieren Sie es auf SageMathCell
quelle
Python 3 , 150 Bytes
Probieren Sie es online!
Exponentielle Laufzeitkomplexität. Verwendet die auf der OEIS-Seite angegebene Formel.
quelle
n>=r>=0
Speichert ein Byte.0**n
nach setzensum(...)
.n<1
anstelle von0**n
Python3 + mpmath 52 Bytes
-3 Bytes, Danke @Zachary T
quelle
from mpmath import*
und die zweite in änderndiff(lambda x:x**x,1,n)
. (nur unnötige Leerzeichen entfernen)Python 3 ,
288261 BytesDifferenzierung ohne Differenzierung eingebaut.
Probieren Sie es online!
Wie es funktioniert
Jede der ersten fünf Zeilen definiert Funktionen und deren Ableitungen sowie deren Ergebnisse, wenn sie unter ausgewertet werden
1
. Ihre Ableitungen sind auch Funktionen.p
ist Macht dha*x^n
l
ist Logarithmus dhln(x)
e
ist exponentiell dhexp(x)
a
ist zusätzlich dhf(x)+g(x)
m
ist die Multiplikation dhf(x)*g(x)
Verwendung: Wird beispielsweise
exp(ln(x)+3x^2)
dargestellt alse(l()+p(3,2))
. Lassenx=e(l()+p(3,2))
. Um die Ableitung zu finden, rufen Sie anx(1)
.1
Rufen Sie an , um das Ergebnis bei Auswertung von zu findenx(0)
.Bonus: symbolische Differenzierung
quelle
exec
Komprimierung können Sie viele Bytes sparen . Probieren Sie es online!Pari / GP , 34 Bytes
Probieren Sie es online!
quelle