ผลต่างระหว่างรุ่นของ "418531 ภาคต้น 2552/โจทยปัญหาอัลกอริทึมแบบแบ่งแยกแล้วเอาชนะ/เฉลยข้อ 6"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
แถว 10: แถว 10:
  
 
== ข้อย่อย 2 ==
 
== ข้อย่อย 2 ==
จากข้อย่อย 1 เราสามารถคำนวณ <math>f_n</math> ได้ด้วยการคำนวณ <math>\begin{matrix}1 & 1 \\ 1 & 0 \end{matrix}^n</math> ซึ่งเราสามารถใช้อัลกอริทึีมได้ เพียงแต่เปลี่ยนการคูณจำนวนเต็มเป็นการคูณเมตริกซ์เท่านั้น เนื่องจากการคูณเมตริกซ์ขนาด 2 x 2 สามารถทำได้ใน <math>O(1) \,</math> เราจึงได้ว่าเราสามารถคำนวณ <math>f_n \,</math> ได้ในเวลา <math>O(\log n) \,</math>
+
จากข้อย่อย 1 เราสามารถคำนวณ <math>f_n</math> ได้ด้วยการคำนวณ <math>\begin{bmatrix}1 & 1 \\ 1 & 0 \end{bmatrix}^n</math> ซึ่งเราสามารถใช้อัลกอริทึีมได้ เพียงแต่เปลี่ยนการคูณจำนวนเต็มเป็นการคูณเมตริกซ์เท่านั้น เนื่องจากการคูณเมตริกซ์ขนาด 2 x 2 สามารถทำได้ใน <math>O(1) \,</math> เราจึงได้ว่าเราสามารถคำนวณ <math>f_n \,</math> ได้ในเวลา <math>O(\log n) \,</math>

รุ่นแก้ไขปัจจุบันเมื่อ 14:28, 4 กันยายน 2552

ข้อย่อย 1

เราจะพิสูจน์ข้อความนี้ด้วย induction

(Base Case) ในกรณีนี้ ซึ่งเราจะได้ว่า


(Induction Case) สมมติให้ สำหรับ บางตัว เราได้ว่า

ฉะนั้นเราจึงสามารถสรุปได้ว่าข้อความที่ต้องการพิสูจน์เป็นจริงสำหรับจำนวนเต็มบวก ทุกจำนวน

ข้อย่อย 2

จากข้อย่อย 1 เราสามารถคำนวณ ได้ด้วยการคำนวณ ซึ่งเราสามารถใช้อัลกอริทึีมได้ เพียงแต่เปลี่ยนการคูณจำนวนเต็มเป็นการคูณเมตริกซ์เท่านั้น เนื่องจากการคูณเมตริกซ์ขนาด 2 x 2 สามารถทำได้ใน เราจึงได้ว่าเราสามารถคำนวณ ได้ในเวลา