Bestimmen Sie anhand der Gleichung aus einem Polynom und einer x-Koordinate die Änderungsrate des Punktes an dieser x-Koordinate auf der Kurve.
Ein Polynom hat die Form: ax n + ax n-1 + ... + ax 1 + a, wobei a ϵ Q und n ϵ W. Für diese Herausforderung kann n auch 0 sein, wenn Sie nicht möchten um spezielle Fälle (Konstanten) zu behandeln, in denen es kein x gibt.
Um die Änderungsrate an dieser x-Koordinate zu finden, können wir die Ableitung des Polynoms erhalten und die x-Koordinate einstecken.
Eingang
Das Polynom kann in jeder vernünftigen Form genommen werden, aber Sie müssen ausdrücklich angeben, welches Format dies ist. Beispielsweise ist ein Array des Formulars [..[coefficient, exponent]..]
zulässig.
Ausgabe
Die Änderungsrate des Punktes an der x-Koordinate ist angegeben.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
Beispiele
[[4, 3], [-2, 4], [5, 10]] 19 -> 16134384838410
[[0, 4]] 400 -> 0
[[4, 0], [5,1]] -13 -> 5
[[4.14, 4], [48, 2]] -3 -> -735.12
[[1, 3], [-5, 0]] 5.4 -> 87.48
Antworten:
Mathematica, 6 Bytes
(Beat THAT ,
MATLund 05AB1E)Das erste Argument muss ein Polynom sein, mit
#
als Variable und mit&
am Ende (dh ein reines Funktionspolynom; zB3 #^2 + # - 7 &
). Das zweite Argument ist die x-Koordinate des Points of Interest.Erläuterung
Nehmen Sie die Ableitung des ersten Arguments (
1
impliziert).Stecken Sie das zweite Argument ein.
Verwendung
quelle
MATL ,
86 BytesEingabe ist: Array von Exponenten, Anzahl, Array von Koeffizienten.
Probieren Sie es online! Oder überprüfen Sie alle Testfälle: 1 , 2, 3 , 4 , 5 .
Erläuterung
Betrachten wir beispielsweise Eingänge
[3 4 10]
,19
,[4 -2 5]
.quelle
Julia,
45424037 BytesDies ist eine Funktion, die einen Vektor aus Tupeln und einer Zahl akzeptiert und eine Zahl zurückgibt. Der absolute Wert soll sicherstellen, dass der Exponent nicht negativ ist, was notwendig ist, da Julia
DomainError
beim Erhöhen einer Ganzzahl auf einen negativen Exponenten nervig ein wirft .Probieren Sie es online! (beinhaltet alle Testfälle)
Vielen Dank an Glen O für ein paar Korrekturen und Bytes.
quelle
i[2]>0&&
Konstantenfallsabs(i[2]-1)
den Exponenten von verwendenx
. Und ein etwas weniger sauberer Trick, um weitere drei Bytes zu speichern, ist die Verwendung vonp%x
anstelle vonf(p,x)
-. Beachten Sie, dass Sie ihn so aufrufen können, als%(p,x)
ob Sie ihn in Funktionsform verwenden möchten läuft Julia 0.4.6), obwohl es auf meiner Julia 0.5.0 funktioniert.abs
Teil, aber die Neudefinition von Infix-Operatoren schmerzt mich körperlich ...05AB1E ,
1211 BytesDank Adnan ein Byte gespart.
Probieren Sie es online!
Die Gleitkommapräzision ist die von Python. Momentan tausche ich Stack-Werte zweimal aus. Vielleicht gibt es eine Möglichkeit, dies zu vermeiden und einige Bytes zu sparen.
quelle
}
weglassen :).DIs<m**O
beträgt 8 Bytes nach der MATL-Antwort von @Luis Mendo.s¹<m**O
sind 7 Bytes. ( 05ab1e.tryitonline.net/… )Python 3, 41 Bytes
6 Bytes entfernt dank @AndrasDeak ! Tatsächlich ist diese Antwort jetzt eher seine als meine ...
Danke auch an @ 1Darco1 für zwei Korrekturen!
Anonyme Funktion, die eine Liste von Listen mit Koeffizienten und Exponenten (dasselbe Format wie in der Challenge beschrieben) und einer Zahl akzeptiert.
Probieren Sie es hier aus .
quelle
a*x**(b-1)
statta*b*x**(b-1)
? Und weiter, was ist, wenn $ x = 0 $?R, 31 Bytes
Anonyme Funktion, die einen Koeffizientenvektor
a
, einen Exponentenvektorn
und einenx
Wert verwendet.quelle
Matlab, 27 Bytes
Dies ist eine anonyme Funktion, die einen Wert
x
und ein Polyonmialp
in Form einer Liste von Koeffizienten akzeptiert , z. B.x^2 + 2
dargestellt werden kann als[1,0,2]
.quelle
JavaScript (ES7), 40 Byte
a
ist eine Anordnung der Koeffizienten in aufsteigender Exponentenreihenfolge mit eingeschlossenen Nullen, z x ³-5 dargestellt werden würde[-5, 0, 0, 1]
.quelle
MATLAB mit Symbolic Math Toolbox, 26 Byte
Dies definiert eine anonyme Funktion. Eingänge sind:
p
, der das Polynom im Format definiert'4*x^3-2*x^4+5*x^10'
x
Beispiel Verwendung:
quelle
@(x,p)polyval(polyder(p),x)
, um ein Byte zu gewinnen.R
3127 BytesUnbenannte Funktion mit zwei Eingaben
p
undx
.p
wird als R-Ausdruck des Polynoms angenommen (siehe Beispiel unten) undx
ist einfach der Bewertungspunkt.Es funktioniert durch Aufrufen des
D
Befehls , der die symbolische Ableitung wrt berechnetx
und den Ausdruck bei auswertetx
.Beispielausgabe
Unter der Annahme, dass die Funktion jetzt benannt ist
f
, kann sie folgendermaßen aufgerufen werden:die jeweils produziert:
quelle
PARI / GP , 20 Bytes
Zum Beispiel
a(4*x^3-2*x^4+5*x^10,19)
Ausbeuten16134384838410
.quelle
f'
vonf
und ersetzt dannn
fürx
.C ++ 14,
165138133112110 BytesGenerisches Variadic Lambda spart viel. -2 Bytes für
#import
und Löschen des Leerzeichens vorher<
Ungolfed:
Verwendung:
quelle
Haskell, 33 Bytes
Verwendung:
quelle
Gleichstrom, 31 Bytes
Verwendung:
quelle
DASH , 33 Bytes
Verwendung:
Erläuterung
quelle
Scala, 46 Bytes
Verwendung:
Erläuterung:
quelle
Axiom 31 Bytes
Ergebnisse
quelle
Python 2, 39 Bytes
lambda
Funktion nimmt zwei Eingängep
undx
.p
ist das Polynom, angegeben in dem in der Frage angegebenen Beispielformat.x
ist der x-Wert, bei dem die Änderungsrate ermittelt wird.quelle
Pari / GP , 14 Bytes
Verwendung:
Probieren Sie es online!
quelle
C 78 Bytes
quelle
Clojure, 53 Bytes
Das Polynom wird als Hash-Map ausgedrückt, wobei Schlüssel Koeffizienten und Werte Exponenten sind.
quelle
Casio Basic, 16 Bytes
Die Eingabe sollte das Polynom in Bezug auf sein
x
. 13 Bytes für den Code, +3 Bytes für die Eingabea,b
als Parameter.Leiten Sie einfach den Ausdruck
a
in Bezug auf abx
, und schließen Sie dann abx=b
.quelle
Dyalog APL,
262523 BytesNimmt Polynom als rechtes Argument und Wert als linkes Argument.
quelle