당신은 외로워하는 많은 다항식을 가지고 있으므로, 그들을 동료로 찌르지 마십시오!
정도의 다항식에는 그에 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. )]
Dennis 는 20 바이트로 승리합니다!