อ้างอิง:
โดยธรรมชาติของกระต่ายในที่นี้เมื่ออายุครบ 2 เดือนบริบูรณ์จะมีลูก 1 คู่
|
รู้สึกว่า ปัญหาของคุณ Mangcom จะเหมือน ปัญหายอดฮิตเกี่ยวกับ fibonacci เลยนะครับ ถ้าเป็นเช่นนั้นจริง ข้อความข้างบน น่าจะเขียนเพิ่มไปด้วยว่า หลังจากกระต่ายอายุครบ 2 เดือน แล้ว จะให้กำเนิด กระต่ายคู่ใหม่ 1 คู่
และจะทำเช่นนี้เรื่อยๆไป ในเดือนต่อๆไป
ถ้าให้ f(n) แทนจำนวนกระต่าย เมื่อสิ้นสุด เดือนที่ n
จะเห็นว่า f(0)= 1 , f(1)=1 เพราะกระต่ายยังอายุไม่ครบ 2 เดือน
แต่หลังจากนี้ จำนวนกระต่าย f(n) จะเท่ากับ จำนวนกระต่ายเดิมที่ยังอยู่ f(n-1) บวกกับ จำนวนกระต่ายคู่ใหม่ที่จะเกิด f(n-2) หรือเขียนเป็น recurrence relation ได้ว่า
f(n) = f(n-1)+f(n-2) (n
ณ2)
ถ้าไม่ เคลียร์ ดูได้จาก diagram ใน web นี้ครับ
CLICK
สรุปว่า recurrence relation สำหรับปัญหานี้ ก็คือ
f(0)= 1 , f(1)=1
f(n) = f(n-1)+f(n-2) (n
ณ2)
แล้วก็คงต้องเขียนโปรแกรม แบบ recursive แล้วล่ะครับ (อ้อ! ระวัง เรื่อง stack overflow ด้วยนะครับ)