เผ่าพันธุ์กระต่ายกับ Fibonacci number

ภาพกระต่าย(มองหน้าอย่างรู้ใจกัน) - ภาพจากวิกิพีเดีย

ประชากรกระต่ายในมหาลัยแห่งหนึ่ง (ภาพจากวิกิพีเดีย)

มีคนขอให้ผมอธิบายเรื่องเลขฟีโบนัชชี (Fibonacci number) เลยทำให้ผมนึกถึงเรื่องราวน่าสนใจสมัยผมยังเรียนปริญญาตรี

สมัยผมเรียนวิทยาศาสตร์คอมพิวเตอร์ที่ธรรมศาสตร์ ผมได้เรียนเรื่องเลขฟีโบนัชชี ในชั่วโมงเรียนผมไม่ค่อยได้สนใจอะไรมากหรอกนะว่าเลขดังกล่าวน่าสนใจอย่างไร จนกระทั่งผมได้ยินอาจารย์บอกว่า เลขนี้อธิบายด้วยเรื่องราวการขยายเผ่าพันธุ์ของกระต่าย!

เลขฟีโบนัชชี เป็นตัวเลขอนุกรมหรือลำดับที่เรียงกัน และก็เรียงกันอย่างมีแบบแผน อนุกรมดังกล่าวค้นพบโดยนักคณิตศาสตร์ชาวอิตาลีนามว่า Leonardo Pisano Bigollo หรือรู้จักกันกว้างขวางในนามว่า Fibonacci อันเป็นชื่อของเลขอนุกรมนี้นี่เอง

หากอธิบายแบบคณิตศาสตร์ เลขฟีโบนัชชีอธิบายได้ดังนี้

F[n] = F[n-1] + F[n-2]

โดย n คือจำนวนเต็มตั้งแต่ 0 ขึ้นไป และกำหนดค่าตั้งต้นของ F[0] = 0 และ F[1] = 1

ถ้าอธิบายด้วยศัพท์ง่ายๆก็คือ เลขฟีโบนัชชีเกิดจากการบวกกันของเลขฟีโบนัชชีที่มีลำดับอยู่ก่อนหน้านี้ 2 ตัวติดกัน ดังนั้น อนุกรมเลขฟีโบนัชชี 10 จำนวนแรกมีดังนี้

0, 1, 1, 2, 3, 5, 8, 13, 21, 34

อธิบายให้เห็นการคำนวณได้ดังนี้

0, 1, 0 + 1 = 1, 1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8, 5 + 8 = 13, 8 + 13 = 21, 13+ 21 = 34

กลับมาสู่หัวข้อกันต่อว่าเผ่าพันธุ์กระต่ายไปเกี่ยวอะไรกับเลขฟีโบนัชชี

เวลาอธิบายอนุกรมของเลขฟีโบนัชชีกันเนี่ย เขายกตัวอย่างผ่านเรื่องราวการผสมพันธุ์ของกระต่าย โดยเป็นเผ่าพันธุ์กระต่ายในอุดมคติ (หรือเผ่าพันธุ์กระต่ายที่สมมติขึ้นมา ไม่มีอยู่จริงในธรรมชาติ) เพื่อให้การเล่าเรื่องการผสมพันธุ์ของกระต่าย เอ้ย! เพื่อให้การเล่าเรื่องเลขฟิโบนัชชีฟังดูเพลิดเพลิน เรามาตั้งข้อสมมติ (หรือ assumption) ของเผ่าพันธุ์กระต่ายนี้กันเถอะ (ผมอาจอธิบายต่างจากบางตำรา ก็เพื่อลดความยุ่งยากในการอธิบาย)

ข้อสมมติ มีดังนี้

  1. เมื่อใดที่กระต่ายกำเนิดขึ้น กระต่ายสามารถผสมพันธุ์ได้เมื่อมีอายุครบ 1 เดือน
  2. กระต่ายตัวผู้ผสมพันธุ์กับกระต่ายตัวเมียเท่านั้น (จริงๆข้อนี้เป็นที่เข้าใจกันอยู่แล้ว แฮๆ)
  3. กระต่ายเมื่อมีคู่แล้ว จะไม่นอกใจ โดยจะผสมพันธุ์กับคู่รักของมันเท่านั้น และกระต่ายจะผสมพันธุ์กับคู่รักทุกๆเดือน (ไม่มีเดือนไหนว่างเว้น)
  4. เมื่อกระต่ายคู่นึงผสมพันธุ์กันแล้ว กระต่ายตัวเมียจะตั้งท้อง และจะคลอดกระต่ายคู่ใหม่ 1 คู่ในเดือนถัดไป (ตั้งท้อง 1 เดือนแล้วจึงคลอด) ลูกกระต่ายที่เกิดขึ้นจะเป็นตัวผู้และตัวเมียอย่างละตัว โดยกระต่ายคู่ใหม่นี้จะเกิดมาเป็นคู่รักกัน และจะผสมพันธุ์กันเมื่อพร้อม (นั่นคือ อายุครบ 1 เดือน)
  5. กระต่ายพันธุ์นี้ไม่มีวันตาย ไม่มีเหน็ดเหนื่อย เมื่อมีการผสมพันธุ์ ตัวเมียสามารถตั้งท้องและคลอดลูกได้ปลอดภัยแน่นอน

อย่าลืมว่า นี่เป็นการสมมตินะ ไม่มีกระต่ายสายพันธุ์เช่นนี้เกิดขึ้นจริง

สัญลักษณ์

  1. เพื่อความง่ายในการเรียกชื่อคู่ของกระต่าย ผมขอใช้สัญลักษณ์ P(x) แทนคู่ของกระต่ายตัวผู้กับตัวเมียที่เป็นคู่รักกัน โดย x คือหมายเลขคู่ เป็นเลขที่เรียงลำดับการเกิดขึ้นก่อนหลังของคู่กระต่ายด้วย โดยกระต่ายคู่แรกมีหมายเลข 1 ดังนั้น P(1) แทนกระต่ายคู่แรกที่ถือกำเนิดขึ้นในโลกนั่นเอง
  2. ขอกำหนดสัญลักษณ์ P(x)+ หมายถึง กระต่ายตัวผู้ตัวเมียคู่ที่ x ที่เพิ่งเกิดใหม่และยังไม่พร้อมผสมพันธุ์ โดยจะผสมพันธุ์กันได้ก็ต่อเมื่อกระต่ายคู่นี้มีอายุครบ 1 เดือน และเมื่อกระต่ายคู่นี้พร้อมผสมพันธุ์จึงสามารถใช้สัญลักษณ์ P(x) แบบไม่มีเครื่องหมาย “บวก” ได้
  3. ขอกำหนดสัญลักษณ์ F[n] สำหรับนับจำนวนคู่กระต่ายทั้งหมดในเผ่าพันธุ์ของเดือนที่ n
  4. กำหนดให้ F[0] คือช่วงเวลาก่อนที่จะมีกระต่ายถือกำเนิดขึ้นมา หรือ F[0] = 0

อธิบายการขยายเผ่าพันธุ์ของกระต่าย

ในช่วงเวลาๆใดๆ ยังไม่มีกระต่ายพันธุ์นี้ถือกำเนิดขึ้น เราเรียกช่วงเวลานี้ว่า เดือนที่ 0 โดย F[0] = 0 จนกระทั่งอยู่มาวันนึง กระต่ายคู่แรกได้ถือกำเนิดขึ้น และเดือนที่ 1 ของเผ่าพันธุ์กระต่ายจึงได้เริ่มต้นขึ้น

  1. เดือนที่ 1 กระต่ายคู่แรกหรือ P(1)+ เกิดขึ้น อีกครั้งว่า ที่เป็น P(1)+ (มีเครื่องหมาย “บวก”) หมายถึง คู่นี้ยังไม่โตพอที่จะผสมพันธุ์กันได้ ดังนั้น ในเดือนแรก F[1] = 1 หรือมีกระต่ายทั้งหมดเพียง 1 คู่ นั่นคือ P(1)+
  2. เดือนที่ 2 กระต่ายคู่แรกผสมพันธุ์กันได้ จึงเรียกคู่นี้ว่า P(1) (ไม่มีเครื่องหมาย “บวก” แล้ว) และตัวเมียตั้งท้อง โดยในเดือนที่สอง ก็ยังมีกระต่ายแค่คู่เดียว หรือ F[2] = 1 เพราะตัวเมียเพิ่งตั้งท้อง ยังไม่ได้คลอดลูกกระต่ายออกมา (โดยใช้เวลาตั้งท้อง 1 เดือน)
  3. เดือนที่ 3 กระต่ายคู่แรกให้กำเนิดลูกกระต่ายคู่ใหม่ คือ P(2)+ ทำให้ F[3] = 2 โดยมีคู่กระต่ายทั้งหมด ได้แก่ P(1), P(2)+
  4. เดือนที่ 4 กระต่ายคู่แรกหรือ P(1) ให้กำเนิดลูกคู่ใหม่คือ P(3)+ ส่วน P(2) เพิ่งสามารถผสมพันธุ์ได้ ดังนั้น F[4] = 3 โดยมีคู่กระต่ายทั้งหมด ได้แก่ P(1), P(2), P(3)+
  5. เดือนที่ 5 คู่ P(1) และ P(2) ให้กำเนิดกระต่าย 2 คู่ใหม่คือ P(4)+ และ P(5)+ ส่วน P(3) เพิ่งพร้อมผสมพันธุ์ ดังนั้น F[5] = 5 โดยมีคู่กระต่ายทั้งหมด ได้แก่ P(1), P(2), P(3), P(4)+, P(5)+
  6. เดือนที่ 6 คู่ P(1), P(2), P(3) ให้กำเนิดกระต่าย 3 คู่ใหม่คือ P(6)+, P(7)+ และ P(8)+ ส่วน P(4) และ P(5) เพิ่งสามารถผสมพันธุ์ได้ ดังนั้น F[6] = 8 โดยมีคู่กระต่ายทั้งหมด ได้แก่ P(1), P(2), P(3), P(4), P(5), P(6)+, P(7)+, P(8)+

ขออธิบายถึงแค่ 6 เดือนก็พอนะ จะเห็นได้ว่า F[6] หรือจำนวนคู่ของกระต่ายในเดือนที่หกมีทั้งหมด 8 คู่ด้วยกัน เอ๊ะ! สังเกตเห็นอะไรไหมครับ ลองกลับไปดูสมการ F[n] = F[n-1] + F[n-2] ด้านบนอีกที (คุ้นๆไหมเอ่ย) ลองเขียนออกมาเป็น F[6] = F[5] + F[4] ดูซิ ซึ่งแทนค่า F[5] กับ F[4] เข้าไป จึงได้ว่า F[6] = 5 + 3 = 8 อ้อ! นั่นคือ เลขฟิโบนัชชีตัวที่ 6 ที่เกิดจากเลขฟิโบนัชชีตัวที่ 5 กับตัวที่ 4 รวมกันนั่นเอง

โดยสรุปจากเรื่องราวของกระต่าย F[n] ก็คือ จำนวนคู่รักของกระต่าย และก็เป็นเลขฟิโบนัชชีด้วยประการฉะนี้แล

6 thoughts on “เผ่าพันธุ์กระต่ายกับ Fibonacci number

  1. pranut says:

    แล้วถ้าเราอยากรู้ว่า เลข Fibonacci ตัวที่ F[22] มีค่าเท่ากับเท่าไร เราจะคิดได้ไง โดยไม่ต้องไปไล่คิดตั้งแต่ F[1]

    • หาได้ครับผม แต่เป็นค่าประมาณที่ใกล้เคียงเลขฟีโบนัชชีสูง(ขึ้นกับพารามิเตอร์ที่กำหนดว่าละเอียดแค่ไหน)

      F[n] = F[n-1] + F[n-2]

      เราสามารถหา F[n] ได้ แม้ว่ามีแค่ F[n-1] หรือ F[n-2] อย่างใดอย่างหนึ่ง หรือไม่มีทั้ง F[n-1] และ F[n-2] ทั้งสองตัวเลยก็ได้ (ในที่นี้ กำหนดให้ F[0] = 0)

      ถ้าขาดเลขฟีโบนัชชีทั้งตัวสองก่อนหน้า n เราสูตรของ Binet ว่า [Phi^n – (-phi)^n] / sqrt(5)

      โดย Phi และ phi เป็นทศนิยม (ผมไม่แน่ใจว่าเป็นอตรรกยะหรือไม่) ในที่นี้ กำหนดให้ Phi = 1.6180339, phi = –0.6180339 แต่ sqrt(5) เป็นอตรรกยะแน่ๆ ยิ่งกำหนดค่าทศนิยมของ Phi, phi, และ sqrt(5) ละเอียดได้มากเท่าไหร่ยิ่งทำให้ได้ F[n] แม่นยำมากขึ้นเท่านั้น

      ผมหาเอกสารที่อธิบายที่มาไม่พบ แต่ลองเอา http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibFormula.html ไปอ่านคร่าวๆได้ครับ

  2. Pum says:

    F(n+1)=sum_{I=0}^[n/2] {n-i \choose i}
    ex. F(6)=F(5+1)=sum_{i=0}^2 {5-i \choose i}
    ={5 \choose 0}+{4 \choose 1}+{3 \choose 2}
    =1+4+3
    =8

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s