Herausforderung
Geben Sie die erweiterte Form des Polynoms aus, wenn die Wurzeln eines Polynoms durch Leerzeichen als Eingabe getrennt sind.
Zum Beispiel die Eingabe
1 2
repräsentiert diese Gleichung:
(x-1)(x-2)
Und sollte ausgeben:
x^2-3x+2
Das genaue Ausgabeformat ist nicht wichtig, es kann sein:
1x^2+-3x^1+2x^0
oder:
0 0 0
1x^3+0x^2+0x^1+0
oder:
3 14 15 92
1x^4+-124x^3+3241x^2+-27954x^1+57960
Wertung / Regeln
eval
und Likes sind nicht erlaubt.- Sie können eine beliebige Version von Python oder eine andere Sprache verwenden .
numpy.poly
?Antworten:
Gelee, 15 Bytes
Dies wird verwendet
Æṛ
, um die Koeffizienten eines monischen Polynoms mit gegebenen Wurzeln zu konstruieren. Probieren Sie es online aus!Wie es funktioniert
Alternative Version, 24 Bytes
Dies verwendet keine polynombezogenen Einbauten. Probieren Sie es online aus!
Wie es funktioniert
quelle
MATL , 29 Bytes
Eingabe ist ein Array mit den Wurzeln.
EDITS:
X+
Funktion wurde entfernt,Y+
einschließlich ihrer Funktionalität. So in dem obigen Code ersetzenX+
durchY+
.YD
Funktion solltew
der obige Code entfernt werden.Der folgende Link enthält diese Änderungen.
Probieren Sie es online aus!
Erläuterung
Dies gilt für die wiederholte Faltung mit Begriffen der Form,
[1, -r]
in derr
sich eine Wurzel befindet.quelle
Ruby, 155 Bytes
Anonyme Funktion, Eingabe ist ein Array der Wurzeln.
Druckt zuerst mit der niedrigsten Leistung.
f[[1,2]]
Wenn Sie also aufrufen (vorausgesetzt, Sie haben die Funktion zugewiesenf
), wird die Zeichenfolge zurückgegeben"2x^0+-3x^1+1x^2"
.quelle
Python 3, 453 Bytes (Leerzeichen entfernt und mehr) -> 392 Bytes
Überprüfen Sie diesen Link , um den Grund für diese beiden Importe zu verstehen.
quelle
from operator import*
,from functools import*
speichern Sie ein paar Bytesimport functools,operator
Haskell, 99
druckt zuerst die unteren Potenzen aus,
0+
am Anfang eine zusätzliche . zum Beispiel:Die Funktion berechnet die Koeffizienten, indem sie nach und nach mehr Wurzeln wie Faltungen hinzufügt, jedoch ohne die eingebauten.
Dann verwenden wir die Listenmonade, um implizit
concat
alle verschiedenen Monome zu verwenden.quelle
Salbei, 38 Bytes
Probieren Sie es online aus
Dies definiert ein unbenanntes Lambda, das eine iterierbare Wurzel als Eingabe verwendet, das Produkt berechnet
(x-x_n) for x_n in roots
und es dann erweitert.quelle
Mathematica, 26 Bytes
Mathematica hat mächtige Polynom-Buildins.
Verwendungszweck
quelle
JavaScript (ES6), 96 Byte
quelle