Sie haben eine Reihe von Polynomen, die einsam sind, also machen Sie sie zu Gefährten (die nicht drohen zu erstechen)!
Für ein Polynom vom Grad n
gibt es eine n by n
Begleiter Würfelmatrix für sie. Sie müssen eine Funktion erstellen, die eine Liste von Koeffizienten für ein Polynom in aufsteigender ( ) oder absteigender ( ) Reihenfolge (aber nicht in beiden) akzeptiert, und die Begleitmatrix ausgeben. a + bx +cx^2 + …
ax^n + bx^(n-1) + cx^(n-2)+…
für ein Polynom c0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n
ist seine Begleitmatrix
(0, 0, 0, ..., -c0 ),
(1, 0, 0, ..., -c1 ),
(0, 1, 0, ..., -c2 ),
(...................),
(0, 0, ..., 1, -cn-1)
Beachten Sie, dass der Koeffizient für x^n
1 ist. Teilen Sie für jeden anderen Wert alle übrigen Koeffizienten durch x^n
's. Zusätzlich sind die Einsen von der Diagonalen versetzt.
Wenn die von Ihnen verwendete Sprache bereits eine Funktion oder ein Modul enthält, die bzw. das dies tut, können Sie sie nicht verwenden - Sie müssen Ihre eigene schreiben.
Wenn Sie dies getan haben 4x^2 – 7x + 12
, sind die Koeffizienten in aufsteigender Reihenfolge (12, -7, 4)
und absteigender Reihenfolge (4, -7, 12)
. Die Funktion oder das Programm sollte [(0, -3.0), (1, 1.75)]
für jede Bestellung ausgegeben werden. Geben Sie an, welche Bestellung Ihr Code akzeptiert. Das minimale Polynom sollte quadratisch sein. Koeffizienten sind auf reelle Zahlen beschränkt.
Unten sind Beispiele aufgeführt - Ihre Ausgabe muss nicht mit der hübschen Formatierung übereinstimmen, sondern sollte die Zeilen (in der ()
) der Matrix in der angegebenen Reihenfolge ausgeben .
Aufsteigende Reihenfolge:
input:
[3., 7., -5., 4., 1.]
output:
[(0, 0, 0, -3.),
(1, 0, 0, -7.),
(0, 1, 0, 5.),
(0, 0, 1, -4.)]
input:
[-4., -7., 13.]
output:
[(0, 0.30769231),
(1, 0.53846154)]
input:
[23., 1., 92., 8., -45., 88., 88.]
output:
[(0, 0, 0, 0, 0, -0.26136364),
(1, 0, 0, 0, 0, -0.01136364),
(0, 1, 0, 0, 0, -1.04545455),
(0, 0, 1, 0, 0, -0.09090909),
(0, 0, 0, 1, 0, 0.51136364),
(0, 0, 0, 0, 1, -1. )]
Absteigende Reihenfolge:
input:
[1., 4., -5., 7., 3.]
output:
[(0, 0, 0, -3.),
(1, 0, 0, -7.),
(0, 1, 0, 5.),
(0, 0, 1, -4.)]
input:
[13., -7., -4.]
output:
[(0, 0.30769231),
(1, 0.53846154)]
input:
[88., 88., -45., 8., 92.,1., 23.]
output:
[(0, 0, 0, 0, 0, -0.26136364),
(1, 0, 0, 0, 0, -0.01136364),
(0, 1, 0, 0, 0, -1.04545455),
(0, 0, 1, 0, 0, -0.09090909),
(0, 0, 0, 1, 0, 0.51136364),
(0, 0, 0, 0, 1, -1. )]
Dennis gewinnt mit 20 Bytes!