ผลต่างระหว่างรุ่นของ "418531 ภาคต้น 2552/โจทยปัญหาอัลกอริทึมแบบแบ่งแยกแล้วเอาชนะ/เฉลยข้อ 6"
ไปยังการนำทาง
ไปยังการค้นหา
Cardcaptor (คุย | มีส่วนร่วม) |
Cardcaptor (คุย | มีส่วนร่วม) |
||
แถว 10: | แถว 10: | ||
== ข้อย่อย 2 == | == ข้อย่อย 2 == | ||
− | จากข้อย่อย 1 เราสามารถคำนวณ <math>f_n</math> ได้ด้วยการคำนวณ <math>\begin{ | + | จากข้อย่อย 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 สามารถทำได้ใน เราจึงได้ว่าเราสามารถคำนวณ ได้ในเวลา