Vous avez un certain nombre de polynômes qui sont seuls, alors faites-en des compagnons (qui ne menaceront pas de poignarder)!
Pour un polynôme de degré n
, il existe une matrice de cuben by n
compagnon . Vous devez créer une fonction qui accepte une liste de coefficients pour un polynôme dans l'ordre croissant ( ) ou décroissant ( ) (mais pas les deux) et générer la matrice associée. a + bx +cx^2 + …
ax^n + bx^(n-1) + cx^(n-2)+…
pour un polynôme c0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n
, sa matrice compagnon est
(0, 0, 0, ..., -c0 ),
(1, 0, 0, ..., -c1 ),
(0, 1, 0, ..., -c2 ),
(...................),
(0, 0, ..., 1, -cn-1)
notez que le coefficient de x^n
est 1. Pour toute autre valeur, divisez tous les autres coefficients par x^n
. De plus, les 1 sont décalés de la diagonale.
Si le langage que vous utilisez contient déjà une fonction ou un module qui fait cela, vous ne pouvez pas l'utiliser - vous devez écrire le vôtre.
Par exemple, si vous en aviez 4x^2 – 7x + 12
, les coefficients dans l'ordre croissant sont (12, -7, 4)
et dans l'ordre décroissant (4, -7, 12)
. La fonction ou le programme doit sortir [(0, -3.0), (1, 1.75)]
pour l'un ou l'autre ordre. Spécifiez la commande acceptée par votre code. Le polynôme minimum doit être quadratique. Les coefficients sont limités aux nombres réels.
Vous trouverez ci-dessous des exemples - votre sortie n'a pas à correspondre à la jolie mise en forme, mais elle doit sortir les lignes (dans le ()
) de la matrice dans l'ordre.
Ordre croissant:
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. )]
Ordre décroissant:
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 gagne avec 20 octets!