จากโจทย์ที่ได้รับมาคือ
มีกระต่าย 1 คู่
1 เดือนต่อมา กระต่ายจะโตพร้อมผสมพันธุ์
1 เดือนต่อมา กระต่ายจะออกลูก 1 คู่ ตัวผู้และตัวเมียอย่างละ 1 ตัว
เดือนต่อๆไปกระต่ายก็จะโตและออกลูกไปเรื่อยๆ
คำถามคือ...ในเดือนที่ 12 จะมีกระต่ายทั้งหมดกี่คู่
เดือนที่1 กระต่าย 1 คู่
เดือนที่2 กระต่าย 1 คู่
เดือนที่3 กระต่าย 2 คู่ ( คู่แรกออกลูก 1 คู่)
เดือนที่4 กระต่าย 3 คู่ (คู่แรกออกลูก 1 คู่ ลูกในเดือนที่แล้วโตพร้อมผสมพันธุ์)
เดือนที่4 กระต่าย 5 คู่ (คู่แรกออกลูก 1 คู่ ลูกในเดือนที่แล้วโตพร้อมผสมพันธุ์ ตัวพร้อมผสมพันธุ์ ออกลูก 1 คู่ ลูกในเดือนที่แล้วโตพร้อมผสมพันธุ์)
เดือนที่5 กระต่าย 8 คู่ (ตัวเต็มวัยออกลูกคู่ละ 1 คู่ ลูกในเดือนที่แล้วโตพร้อมผสมพันธุ์ ตัวพร้อมผสม พันธุ์ออกลูก 1 คู่ ลูกในเดือนที่แล้วโตพร้อมผสมพันธุ์)
จะเห็นได้ว่า การเพิ่มขึ้นของกระต่ายเป็นการเพิ่มแบบลำดับ fibonacci ทำให้เราสามารถเขียนโปรแกรมคำนวณจำนวณของกระต่ายได้ดังนี้
month = 12 #จำนวนเดือนที่ต้องการนับจำนวนกระต่าย
# first two terms
rabb1 = 0 #กระต่ายเริ่มต้น
rabb2 = 1 #กระต่ายเดือนที่1
count = 0 #จำนวนเดือนที่ผ่านไป
rabbit_month = [] #list ของจำนวนกระต่าย
while count < month :
rabbit_month.append(rabb2)
nowrabbit = rabb1 + rabb2
# update values
rabb1 = rabb2
rabb2 = nowrabbit
count += 1
print(rabbit_month)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น