Diberikan polinom nol bukan dengan koefisien bilangan bulat dan akar yang ada di imajiner dan di garis nyata sehingga jika a
merupakan akar maka demikian -a
, kembalikan polinomial lain dengan akar diputar 90 derajat.
Detail
Polinomial dapat diberikan dalam format apa pun yang masuk akal, misalnya sebagai daftar koefisien. Kondisi simetri yang a
merupakan root jika dan hanya jika -a
root juga memaksa polinomial yang diputar untuk memiliki koefisien integer nyata juga.
Contohnya
Berikut ini polinomial diberikan sebagai daftar koefisien monomial dalam derajat menurun. (yaitu konstanta datang terakhir) Polinomial x^2-1
memiliki akar {1,-1}
. Putar mereka dengan 90°
cara mengalikan dengan i
(unit imajiner), sehingga polinomial keluaran harus memiliki akar {i,-i}
, yaitu x^2 + 1
.
Input / Output
[1 0 10 0 -127 0 -460 0 576] [1 0 -10 0 -127 0 460 0 576]
[1 0 -4 0] [1 0 4 0]
[1] [1]
sumber
x
, sehingga kiriman saya dapat digantix
dengan string(i*x)
? Bisakah saya memformat fungsi yang mengevaluasi polinomial, sehingga kiriman saya untuk menyusunnya dengan fungsix -> i*x
?Jawaban:
Mathematica, 10 Bytes
Fungsi murni yang mengambil fungsi x dan pengganti di ix.
Alternatif dengan hanya 7 byte tetapi tidak yakin apakah itu diperhitungkan. Fungsi murni yang mengambil fungsi murni dan mengembalikan fungsi x.
sumber
#
sebagai variabel dan memiliki&
di akhir.Jelly , 5 byte
Cobalah online!
Bagaimana itu bekerja
Mengalikan elemen pertama dengan
1
, elemen ketiga dengan-1
, dll.Bukti algoritma
Biarkan jumlahnya banyak
f(x)
.Karena kita dijamin bahwa jika
x
adalah root maka demikian juga-x
, jadif
harus genap, artinya koefisien untuk kekuatan ganjil harus0
.Sekarang, memutar akar pada
90°
dasarnyaf(ix)
.Memperluas kemudian membandingkan koefisien membuktikan algoritma.
sumber
ı*Ċ
sangat bagus, Anda harus menjelaskannya :)JavaScript (ES6), 25 byte
Polinomial asli memiliki solusi bentuk di
x = ±a
mana a terletak pada garis nyata atau imajiner. Kecuali ketikaa = 0
(dalam halx
ini merupakan faktor polinomial), ini berarti bahwax² - a²
merupakan faktor polinomial (yang berarti suku pengganti selalu nol). Sekarang ketika kita memutar akar, faktor berubah menjadix² + a²
. Karena semua faktor berubah pada saat yang sama, istilah ketiga polinomial, yang merupakan jumlah dari semua-a²
istilah, tanda perubahan, istilah kelima, yang merupakan jumlah produk dari pasangan-a²
istilah, menyimpan tanda yang sama, dll bergantian setiap istilah lainnya.sumber
Oktaf , 27 byte
Cobalah online!
Ini secara langsung menerapkan definisi: menghitung root, kalikan dengan
j
, mengkonversi kembali dari root ke polinomial. Pembulatan terakhir diperlukan karena kesalahan numerik floating-point.sumber
Python 3 , 42 byte
Cobalah online!
sumber
SILOS ,
7166 byteCobalah online!
Saya tidak tahu apa yang dilakukan sihir @Leaky Nun di sini untuk menghemat 5 byte.Butuh beberapa saat untuk mencari tahu, tetapi bit kedua C akan berganti seperti yang kita inginkan. Oleh karena itu @Leaky Nun memanfaatkan ini untuk menghemat bit yang kita butuhkan.
sumber
TI-Basic, 20 byte
Jika disimpan di
prgmA
, jalankan dengan:seq(
hanya harus menjadi perintah * satu yang tidak mendukung angka kompleks. :)*: Berlebihan
sumber
Casio-Basic, 8 byte
Fungsi yang tidak disebutkan namanya, menggunakan pendekatan Mathematica Ian Miller. Imag imajiner dari keyboard Math2 perlu digunakan (dihitung sebagai 2 byte, kode char 769), dan polinomial harus dimasukkan sebagai persamaan
x
.7 byte untuk kode, 1 byte untuk ditentukan
n
sebagai parameter.Penjelasan : Mengambil persamaan
n
, lalu cukup mengganti semua instancex
dengan𝑖x
.sumber
Pari / GP , 16 byte
Cobalah online!
sumber
Stax , 5 byte
Jalankan dan debug online!
Port jawaban Jelly.
Menggunakan representasi ASCII untuk menjelaskan:
Jika ada nol di depan, mereka harus dipangkas terlebih dahulu dan itu bisa dilakukan dengan biaya byte lain.
sumber