Mengalikan n polinomial derajat 1

35

Masalahnya adalah menghitung polinomial . Asumsikan bahwa semua koefisien cocok dengan kata mesin, yaitu dapat dimanipulasi dalam satuan waktu.(a1x+b1)××(anx+bn)

Anda dapat melakukan waktu dengan menerapkan FFT dalam mode pohon. Bisakah Anda melakukan ?O ( n log n )O(nlog2n)O(nlogn)

Mihai
sumber
Pertanyaan yang bagus, sepertinya saya pernah melihat sesuatu yang serupa di blog seseorang, tetapi saya tidak ingat di mana itu.
Grigory Yaroslavtsev
3
Pengamatan minor: kita tahu (bekerja lebih dari Q, katakanlah) akar n , jadi masalahnya setara dengan: Mengingat α 1 , , α n , hitung polinomialnya . (Saya kira.)αi=bi/aiα1,,αn(x-α1)...(x-αn)
ShreevatsaR
1
Bisakah Anda memberikan referensi ke hasil ? HAI(nlog2n)
Mohammad Al-Turkistany
2
Seperti yang disebutkan @Suresh, ini adalah pendekatan membagi dan menaklukkan yang sederhana. Ini dapat digeneralisasi sehingga n polys mungkin memiliki derajat yang berbeda , dalam hal ini Anda dapat membaginya dalam mode pohon Huffman. Lihat Strassen: Kompleksitas komputasi dari fraksi lanjutan. dsaya
Zeyu
1
Bisakah kita menghitung konvolusi vektor dimensi konstan 2 dalam waktu O ( n log n ) ? nHAI(nlogn)
Kaveh

Jawaban:

7

Peringatan: Ini belum jawaban yang lengkap. Jika argumen masuk akal membuat Anda tidak nyaman, berhentilah membaca.

Saya akan mempertimbangkan varian di mana kami ingin mengalikan (x - a_1) ... (x - a_n) di atas angka kompleks.

Masalahnya adalah ganda untuk mengevaluasi polinomial pada n poin. Kita tahu ini bisa dilakukan secara cerdik dalam waktu O (n log n) ketika poin kebetulan adalah akar persatuan ke-n. Ini mengambil keuntungan penting dari simetri poligon reguler yang mendasari Fast Fourier Transform. Transformasi itu datang dalam dua bentuk, yang secara konvensional disebut decimation-in-time dan decimation-in-frequency. Dalam radix dua mereka bergantung pada sepasang simetri poligon beraturan dua sisi: simetri yang saling mengunci (segi enam reguler terdiri dari dua segitiga sama sisi yang saling bertautan) dan kipas yang membuka simetri simetri (memotong segi enam reguler menjadi dua dan membuka potongan seperti kipas menjadi segitiga sama sisi).

Dari perspektif ini, tampaknya sangat tidak masuk akal bahwa algoritma O (n log n) akan ada untuk set n poin acak tanpa simetri khusus. Ini akan menyiratkan bahwa tidak ada algoritme luar biasa tentang poligon reguler dibandingkan dengan set poin acak di bidang kompleks.

Per Vognsen
sumber
3
Di sisi lain, batas bawah untuk masalah alami seperti itu tampaknya sama-sama tidak masuk akal! Ω(nlog2n)
Jeffε
Benar! Saya berharap saya memiliki jawaban yang lebih pasti. Itu sangat menarik.
Per Vognsen
Hadiah diberikan!
Jeffε
@ PerVognsen: Dapatkah Anda memberikan referensi untuk sudut pandang ini kembali: simetri poligon / simetri yang saling terkait? Atau jika ini adalah pengamatan Anda sendiri, dapatkah Anda mengembangkannya sedikit lebih lama?
Joshua Grochow