あなたは孤独な多項式をたくさん持っているので、それらをいくつかの仲間(刺すことを脅さない)にしてください!
次数の多項式のn
場合、n by n
コンパニオンキューブ 行列があります。多項式の係数リストを昇順(a + bx +cx^2 + …
)または降順()で受け入れる関数を作成する必要がありますax^n + bx^(n-1) + cx^(n-2)+…
)で(両方ではなく)、コンパニオンマトリックスを出力ます。
多項式のc0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n
場合、そのコンパニオン行列は
(0, 0, 0, ..., -c0 ),
(1, 0, 0, ..., -c1 ),
(0, 1, 0, ..., -c2 ),
(...................),
(0, 0, ..., 1, -cn-1)
の係数x^n
は1であることに注意してください。他の値については、残りのすべての係数をx^n
。さらに、1は対角線からオフセットされます。
使用している言語に既にこれを行う関数またはモジュールが含まれている場合、使用することはできません。独自の言語を作成する必要があります。
たとえば、を持っている4x^2 – 7x + 12
場合、係数は昇順(12, -7, 4)
で降順(4, -7, 12)
です。関数またはプログラムが出力する必要があります[(0, -3.0), (1, 1.75)]
、どちらの順序でもする。コードが受け入れる順序を指定します。最小多項式は2次でなければなりません。係数は実数に制限されています。
以下に例を示します。出力はきれいな書式に一致する必要はありませんが()
、マトリックスの行(内)を順番に出力する必要があります。
昇順:
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. )]
降順:
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. )]
デニスは20バイトで勝ちます!