Anda memiliki sejumlah polinomial yang kesepian, jadi jadikan mereka teman (yang tidak akan mengancam untuk menusuk)!
Untuk polinomial derajat n
, ada matriks kubusn by n
pengiring untuk itu. Anda perlu membuat fungsi yang menerima daftar koefisien untuk polinomial baik dalam urutan naik ( ) atau turun ( ) (tetapi tidak keduanya) dan mengeluarkan matriks pendamping. a + bx +cx^2 + …
ax^n + bx^(n-1) + cx^(n-2)+…
untuk polinomial c0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n
, matriks pengiringnya adalah
(0, 0, 0, ..., -c0 ),
(1, 0, 0, ..., -c1 ),
(0, 1, 0, ..., -c2 ),
(...................),
(0, 0, ..., 1, -cn-1)
catat bahwa koefisien untuk x^n
adalah 1. Untuk nilai lainnya, bagi semua sisa koefisien dengan x^n
'. Selain itu, 1 adalah offset dari diagonal.
Jika bahasa yang Anda gunakan sudah mengandung fungsi atau modul yang melakukan ini, Anda tidak dapat menggunakannya - Anda harus menulis sendiri.
Misalnya, jika Anda punya 4x^2 – 7x + 12
, koefisien dalam urutan naik adalah (12, -7, 4)
dan urutan menurun (4, -7, 12)
. Fungsi atau program harus menampilkan [(0, -3.0), (1, 1.75)]
untuk salah satu urutan. Tentukan pesanan mana yang diterima oleh kode Anda. Polinomial minimum harus kuadratik. Koefisien terbatas pada bilangan real.
Di bawah ini adalah contoh - output Anda tidak harus cocok dengan format cantik tetapi harus menampilkan baris (dalam ()
) dari matriks secara berurutan.
Urutan naik:
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. )]
Urutan menurun:
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 menang dengan 20 byte!