การคูณแบบไบนารีและการบิดแบบพาริตี


22

คำถามนี้เกี่ยวกับความสัมพันธ์ระหว่างการคูณเลขฐานสองปกติกับการคูณพหุนาม mod 2 เพื่อสร้างคำถามที่เป็นรูปธรรมฉันอยากจะรู้ว่าถ้ามีทางออกที่ดีกว่าสำหรับคำถามจาก Knuth vol 2, ฉบับที่ 3, หน้า 420 กว่าที่ระบุไว้ในหนังสือ

"การคูณ polynomials modulo 2 สามารถทำได้โดยใช้การคำนวณทางคณิตศาสตร์แบบธรรมดาบนคอมพิวเตอร์ไบนารีถ้าค่าสัมประสิทธิ์ถูกบรรจุลงในคำคอมพิวเตอร์"

Knuth ให้การลดลงอย่างตรงไปตรงมาอย่างสมเหตุสมผลซึ่งจะขยายจำนวนบิตในอินพุตโดยปัจจัยการคูณล็อกในกรณีที่เลวร้ายที่สุด Log factor นี้จะลดลงได้ไหม?


1
เพื่อชี้แจงเล็ก ๆ น้อย ๆ ฉันไม่สนใจจริง ๆ ในส่วนของ "อัดคำศัพท์คอมพิวเตอร์" ของคำถาม แต่เป็นเพียงการลดลง เพื่อให้มันกระชับมากขึ้นเป็นไปได้หรือไม่ที่การทวีคูณของเลขฐานสองเป็นเรื่องที่ง่ายกว่า (ในแง่ของการอนุญาตให้แก้ปัญหาได้เร็วกว่าแบบ asymptotically) กว่าการคูณของ polynomials modulo 2? นี่คงเป็นสิ่งที่ตรงกันข้ามกับสัญชาตญาณมาตรฐานที่ฉันเข้าใจ
Raphael

ขอบคุณ Suresh! ฉันหวังว่าเราสามารถหลีกเลี่ยง tumbleweed สำหรับอันนี้ :-)
Raphael

อนิจจาดูเหมือนว่ามันจะยังคงเกลือกกลิ้ง สงสาร ...
Suresh Venkat

ฉันสงสัยว่าทำไมถึงเป็นแบบนี้ บางทีฉันอาจจะพูดไม่เก่ง แต่คำถามว่าการคูณอาจง่ายกว่าการบิด (ความเท่าเทียมกัน) ต้องเป็นคำถามที่อย่างน้อยบางคนต้องคิดเพราะการสร้างความสัมพันธ์ที่รู้จักระหว่างสองปัญหานั้นเป็นอย่างไร
Raphael

คำตอบ:


2

แน่นอนว่าคุณสามารถลดให้เหลือเพียง 1 แต่อาจใช้เวลานาน แต่การตอบคำถามที่อยู่เบื้องหลังคำถาม: การคูณ polynomials mod 2 นั้นง่ายกว่าจากมุมมองของฮาร์ดแวร์ (ไม่จำเป็นต้องเผยแพร่บิตของการพกพา) แต่การคูณของจำนวนเต็มคือการดำเนินการที่ผู้คนคิดว่าสำคัญและสนับสนุนโดยตรงใน ALUs และ ภาษาโปรแกรม


ฉันสนใจจริงๆเกี่ยวกับความซับซ้อนเชิงซีกไม่เชิงปฏิบัติมากนัก การลดเวลาและพื้นที่เชิงเส้นจะตอบคำถาม
Raphael
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.