Tantangan
Mengingat akar polinomial dipisahkan oleh spasi sebagai input, output bentuk polinomial diperluas.
Misalnya input
1 2
mewakili persamaan ini:
(x-1)(x-2)
Dan haruskah output:
x^2-3x+2
Format output yang tepat tidak penting, bisa berupa:
1x^2+-3x^1+2x^0
atau:
0 0 0
1x^3+0x^2+0x^1+0
atau:
3 14 15 92
1x^4+-124x^3+3241x^2+-27954x^1+57960
Penilaian / Aturan
eval
dan suka tidak diizinkan.- Anda dapat menggunakan versi Python atau bahasa apa pun lainnya .
numpy.poly
?Jawaban:
Jelly, 15 byte
Ini digunakan
Æṛ
untuk membuat koefisien polinomial monik dengan akar yang diberikan. Cobalah online!Bagaimana itu bekerja
Versi alternatif, 24 byte
Ini tidak menggunakan built-in yang terkait dengan polinomial. Cobalah online!
Bagaimana itu bekerja
sumber
MATL , 29 byte
Input adalah array dengan root.
EDIT:
X+
fungsi telah dihapus,Y+
termasuk fungsinya. Jadi dalam kode di atas digantikanX+
olehY+
.YD
fungsi,w
dalam kode di atas harus dihapus.Tautan berikut mencakup perubahan-perubahan itu.
Cobalah online!
Penjelasan
Ini berlaku konvolusi berulang dengan syarat bentuk di
[1, -r]
manar
root.sumber
Ruby, 155 byte
Fungsi anonim, input adalah array dari root.
Mencetak dari daya terendah terlebih dahulu, jadi memanggil
f[[1,2]]
(dengan asumsi Anda menetapkan fungsi untukf
) mengembalikan string"2x^0+-3x^1+1x^2"
.sumber
Python 3, 453 byte (Spasi dihapus dan banyak lagi) -> 392 byte
Periksa tautan ini , Akan membantu memahami alasan di balik kedua impor itu.
sumber
from operator import*
,from functools import*
simpan beberapa byteimport functools,operator
Haskell, 99
mencetak kekuatan yang lebih rendah terlebih dahulu, dengan tambahan
0+
di awal. sebagai contoh:Fungsi menghitung koefisien dengan semakin menambahkan lebih banyak root, seperti konvolusi, tetapi tanpa builtin.
Kemudian kita menggunakan daftar monad untuk secara implisit
concat
semua monomial yang berbeda.sumber
Sage, 38 byte
Cobalah online
Ini mendefinisikan lambda tanpa nama yang mengambil iterable dari root sebagai input dan menghitung produk
(x-x_n) for x_n in roots
, kemudian memperluasnya.sumber
Mathematica, 26 byte
Mathematica memiliki polinomial yang kuat.
Pemakaian
sumber
JavaScript (ES6), 96 byte
sumber