1
การคำนวณจำนวนบิตของพลังงานจำนวนเต็มขนาดใหญ่
ด้วยจำนวนเต็มสองจำนวนและnในการแทนฐานสองความซับซ้อนของการคำนวณขนาดบิตของx nคืออะไร?xxxnnnxnxnx^n วิธีหนึ่งในการทำเช่นนั้นคือการคำนวณโดยคำนวณการประมาณของlog 2 ( x )ด้วยความแม่นยำเพียงพอ ปรากฏว่าการคำนวณล็อก2 ( x )พร้อมkบิตของ precisions สามารถทำได้ในO ( M ( k ) บันทึกk )โดยที่M (1+⌊log2(xn)⌋=1+⌊nlog2(x)⌋1+⌊log2(xn)⌋=1+⌊nlog2(x)⌋1+\lfloor \log_2(x^n)\rfloor=1+\lfloor n\log_2(x)\rfloorlog2(x)log2(x)\log_2(x)log2(x)log2(x)\log_2(x)kkkO(M(k)logk)O(M(k)logk)O(M(k)\log k)คือเวลาที่จำเป็นในการคำนวณผลิตภัณฑ์สองจำนวนเต็มของความยาวk นี่เป็นอัลกอริธึมของความซับซ้อน (ไม่ใช่แบบธรรมดา) โดยประมาณ O ( s log 2 s )ถ้า sถูกผูกไว้กับบิตของทั้ง xและ n (ถ้าฉันไม่มีข้อผิดพลาด)M(k)M(k)M(k)kkkO(slog2s)O(slog2s)O(s\log^2 s)sssxxxnnn เราสามารถเอาชนะโดยที่sคือขนาดของxและn (ในกรณีที่มีขนาดใกล้เคียงกัน)? มีอัลกอริทึมง่าย ๆ ที่จะทำให้เกิดความซับซ้อนนี้หรือดีกว่าO(slog2(s))O(slog2(s))O(s\log^2(s))sssxxxnnn หมายเหตุ: ฉันสนใจความซับซ้อนในแบบจำลองทางทฤษฎีเช่นเครื่องทัวริง