Die Lehmer-Comtet-Sequenz


12

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 daher sollten Sie die Dateigröße Ihres Quellcodes minimieren.

Testfälle

OEIS 5727

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

Antworten:


10

Haskell , 77 75 Bytes, keine Differenzierung eingebaut

x@(a:b)&y@(c:d)=a*c:zipWith(+)(b&y)(x&d)
s=1:s&(1:scanl(*)1[-1,-2..])
(s!!)

Probieren Sie es online!

Wie es funktioniert

Wir repräsentieren eine Funktion als ihre unendliche Liste von Taylorreihenkoeffizienten um x = 1: f ( x ) = ∑ n = 0 f ( n ) ( x - 1) n / n ! wird dargestellt durch [f (1), f '(1), f "(1), ...].

Der &Operator multipliziert zwei solcher Funktionen mit der Produktregel. Dies lässt uns rekursiv die Funktion s ( x ) = x x als solche definieren, indem wir die Differentialgleichung s (1) = 1, s '( x ) = s ( x ) ⋅ (1 + ln x ) verwenden, wobei ln x = ∑ n = 1 (−1) n - 1 ( n - 1)! ( X - 1) n / n !


7

Mathematica, 19 Bytes

D[x^x,{x,#-1}]/.x->1&

-18 Bytes von @Not a tree


9
Wenn ich nichts vermisse, kann man das viel kürzer machen: D[x^x,{x,#}]/.x->1&19 Bytes.
Kein Baum

eigentlich 21 bytes .. aber ja! viel kürzer!
J42161217

Ich glaube nicht, dass Sie das brauchen. Die -1Sequenz von OEIS beginnt bei n = 0.
Kein Baum

1
OK dann! 19 Bytes ist es
J42161217



4

Python mit SymPy , 77 75 58 57 Bytes

1 Byte gespeichert dank @notjagan

17 Bytes dank @AndersKaseorg gespeichert

from sympy import*
lambda n:diff('x^x','x',n).subs('x',1)

1
lambda n:diff('x**x','x',10).subs('x',1)benötigt nicht sympy.abc.
Anders Kaseorg

1
Ähm ... wo benutzt du das n?
Zacharý

@ ZacharyT danke! zufällig getestet I Vorschlag richtig anders mit n = 10, so dass es das gleiche Ergebnis gab :) nun behoben
Uriel

-1 Byte durch Ersetzen x**xdurch x^x.
Notjagan


2

Python 3 , 150 Bytes

lambda n:0**n or sum(L(n-1,r)for r in range(n))
L=lambda n,r:0<=r<=n and(0**n or n*L(n-2,r-1)+L(~-n,r-1)+(r-~-n)*L(~-n,r)if r else n<2or-~-n*L(n-1,0))

Probieren Sie es online!

Exponentielle Laufzeitkomplexität. Verwendet die auf der OEIS-Seite angegebene Formel.


n>=r>=0Speichert ein Byte.
Post Rock Garf Hunter

Sie können ein Byte auch speichern, indem Sie 0**nnach setzen sum(...).
Post Rock Garf Hunter




1

Python3 + mpmath 52 Bytes

from mpmath import*
lambda n:diff(lambda x:x**x,1,n)

-3 Bytes, Danke @Zachary T


1
Sie sollten die Sprache in python3 + mpmath ändern, da mpmath keine Standardbibliothek ist.
Post Rock Garf Hunter

2
Sie können die erste Zeile in from mpmath import*und die zweite in ändern diff(lambda x:x**x,1,n). (nur unnötige Leerzeichen entfernen)
Zacharý

0

Python 3 , 288 261 Bytes

Differenzierung ohne Differenzierung eingebaut.

p=lambda a,n:lambda v:v and p(a*n,n-1)or a
l=lambda v:v and p(1,-1)
e=lambda v:v and m(e,a(p(1,0),l))or 1
a=lambda f,g:lambda v:v and a(f(1),g(1))or f(0)+g(0)
m=lambda f,g:lambda v:v and a(m(f(1),g),m(g(1),f))or f(0)*g(0)
L=lambda n,f=e:n and L(n-1,f(1))or f(0)

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 dh a*x^n
  • l ist Logarithmus dh ln(x)
  • e ist exponentiell dh exp(x)
  • a ist zusätzlich dh f(x)+g(x)
  • m ist die Multiplikation dh f(x)*g(x)

Verwendung: Wird beispielsweise exp(ln(x)+3x^2)dargestellt als e(l()+p(3,2)). Lassen x=e(l()+p(3,2)). Um die Ableitung zu finden, rufen Sie an x(1). 1Rufen Sie an , um das Ergebnis bei Auswertung von zu finden x(0).

Bonus: symbolische Differenzierung


Mit der execKomprimierung können Sie viele Bytes sparen . Probieren Sie es online!
Post Rock Garf Hunter

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.