มีโครงสร้างข้อมูล word-RAM ของ W-bit ที่มีเวลา O (1) ต่อการดำเนินการสำหรับปัญหาต่อไปนี้หรือไม่: รักษาชุดของจำนวนเต็มที่ไม่ใช่ลบ W-bit ที่รองรับการดำเนินการ
- เพิ่ม (x): เพิ่ม x ในชุด
- ลบ (x): ลบ x จากชุด
- ลายนิ้วมือ (): คืนลายนิ้วมือของชุด ลายนิ้วมือ w-bit นี้มีคุณสมบัติที่สองชุดที่เหมือนกันมีลายนิ้วมือเดียวกันในขณะที่สองชุดที่แตกต่างกันอาจมีลายนิ้วมือที่แตกต่างกัน
การดำเนินการทั้งหมดควรทำงานในเวลาคงที่
แผนการพิมพ์ลายนิ้วมือ Rabin-Karp โดยที่โดยที่ p เป็นการสุ่ม w-bit prime เกือบจะใช้งานได้ ปัญหาเกิดขึ้นกับเวลาอัปเดตเนื่องจากการคำนวณ2 x mod pใช้เวลามากกว่าเวลาคงที่ การใช้กำลังสองซ้ำนี้สามารถทำได้ในเวลา O (log w) อัลกอริทึมการยกกำลังแบบแยกส่วนที่เร็วที่สุดที่ฉันสามารถหาได้คือการดำเนินการทางคณิตศาสตร์ (log w) / (loglog w)
3
ฉันเห็นว่ามีคำถามที่คล้ายกันถูกโพสต์ที่นี่แล้วแต่ไม่มีการแก้ปัญหาเวลาคงที่
—
Pat Morin