У вас є багато самочків, які самотні, тому зробіть їх супутниками (які не загрожують колоти)!
Для многочлена ступеня 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
's. Крім того, 1-х зміщуються від діагоналі.
Якщо мова, яку ви використовуєте, вже містить функцію або модуль, який це робить, ви не можете її використовувати - ви повинні написати свою власну.
Наприклад, якщо у вас були 4x^2 – 7x + 12
, коефіцієнти у порядку зростання є (12, -7, 4)
і по порядку зменшення (4, -7, 12)
. Функція або програма повинні виводити [(0, -3.0), (1, 1.75)]
для будь-якого порядку. Вкажіть, яке замовлення приймає ваш код. Мінімальний многочлен повинен бути квадратичним. Коефіцієнти обмежені реальною кількістю.
Нижче наведено приклади - ваш вихід не повинен відповідати гарному форматуванню, але він повинен виводити рядки (в ()
) матриці по порядку.
В порядку зростання:
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 байтами!