ประชากรกระต่ายในมหาลัยแห่งหนึ่ง (ภาพจากวิกิพีเดีย)
สมัยผมยังเรียนปริญญาตรี วิทยาศาสตร์คอมพิวเตอร์ที่ธรรมศาสตร์
ผมได้เรียนเรื่องเลขฟีโบนัชชี
ในชั่วโมงเรียนผมไม่ค่อยได้สนใจอะไรมากหรอกนะว่าเลขดังกล่าวน่าสนใจอย่างไร
จนกระทั่งผมได้ยินอาจารย์บอกว่า
เลขนี้อธิบายด้วยเรื่องราวการขยายเผ่าพันธุ์ของกระต่าย!
เลขฟีโบนัชชี เป็นตัวเลขอนุกรมหรือลำดับที่เรียงกัน
และก็เรียงกันอย่างมีแบบแผน
อนุกรมดังกล่าวค้นพบโดยนักคณิตศาสตร์ชาวอิตาลีนามว่า 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 คู่ในเดือนถัดไป (ตั้งท้อง 1
เดือนแล้วจึงคลอด)
ลูกกระต่ายที่เกิดขึ้นจะเป็นตัวผู้และตัวเมียอย่างละตัว
โดยกระต่ายคู่ใหม่นี้จะเกิดมาเป็นคู่รักกัน
และจะผสมพันธุ์กันเมื่อพร้อม (นั่นคือ อายุครบ 1 เดือน)
- กระต่ายพันธุ์นี้ไม่มีวันตาย ไม่มีเหน็ดเหนื่อย
เมื่อมีการผสมพันธุ์
ตัวเมียสามารถตั้งท้องและคลอดลูกได้ปลอดภัยแน่นอน
อย่าลืมว่า
นี่เป็นการสมมตินะ ไม่มีกระต่ายสายพันธุ์เช่นนี้เกิดขึ้นจริง
สัญลักษณ์
- เพื่อความง่ายในการเรียกชื่อคู่ของกระต่าย ผมขอใช้สัญลักษณ์ P(x)
แทนคู่ของกระต่ายตัวผู้กับตัวเมียที่เป็นคู่รักกัน โดย x
คือหมายเลขคู่
เป็นเลขที่เรียงลำดับการเกิดขึ้นก่อนหลังของคู่กระต่ายด้วย
โดยกระต่ายคู่แรกมีหมายเลข 1 ดังนั้น P(1)
แทนกระต่ายคู่แรกที่ถือกำเนิดขึ้นในโลกนั่นเอง
- ขอกำหนดสัญลักษณ์ P(x)+ หมายถึง กระต่ายตัวผู้ตัวเมียคู่ที่ x
ที่เพิ่งเกิดใหม่และยังไม่พร้อมผสมพันธุ์
โดยจะผสมพันธุ์กันได้ก็ต่อเมื่อกระต่ายคู่นี้มีอายุครบ 1 เดือน
และเมื่อกระต่ายคู่นี้พร้อมผสมพันธุ์จึงสามารถใช้สัญลักษณ์ P(x)
แบบไม่มีเครื่องหมาย "บวก" ได้
- ขอกำหนดสัญลักษณ์ F[n]
สำหรับนับจำนวนคู่กระต่ายทั้งหมดในเผ่าพันธุ์ของเดือนที่ n
- กำหนดให้ F[0] คือช่วงเวลาก่อนที่จะมีกระต่ายถือกำเนิดขึ้นมา หรือ
F[0] = 0
อธิบายการขยายเผ่าพันธุ์ของกระต่าย
ในช่วงเวลาๆใดๆ ยังไม่มีกระต่ายพันธุ์นี้ถือกำเนิดขึ้น
เราเรียกช่วงเวลานี้ว่า เดือนที่ 0 โดย F[0] = 0
จนกระทั่งอยู่มาวันนึง กระต่ายคู่แรกได้ถือกำเนิดขึ้น และเดือนที่ 1
ของเผ่าพันธุ์กระต่ายจึงได้เริ่มต้นขึ้น
-
เดือนที่ 1
กระต่ายคู่แรกหรือ P(1)+ เกิดขึ้น อีกครั้งว่า ที่เป็น P(1)+
(มีเครื่องหมาย "บวก") หมายถึง คู่นี้ยังไม่โตพอที่จะผสมพันธุ์กันได้
ดังนั้น ในเดือนแรก F[1] =
1 หรือมีกระต่ายทั้งหมดเพียง 1 คู่ นั่นคือ P(1)+
-
เดือนที่ 2
กระต่ายคู่แรกผสมพันธุ์กันได้ จึงเรียกคู่นี้ว่า P(1)
(ไม่มีเครื่องหมาย "บวก" แล้ว) และตัวเมียตั้งท้อง โดยในเดือนที่สอง
ก็ยังมีกระต่ายแค่คู่เดียว หรือ F[2] =
1 เพราะตัวเมียเพิ่งตั้งท้อง ยังไม่ได้คลอดลูกกระต่ายออกมา
(โดยใช้เวลาตั้งท้อง 1 เดือน)
-
เดือนที่ 3
กระต่ายคู่แรกให้กำเนิดลูกกระต่ายคู่ใหม่ คือ P(2)+ ทำให้
F[3] = 2
โดยมีคู่กระต่ายทั้งหมด ได้แก่ P(1), P(2)+
-
เดือนที่ 4
กระต่ายคู่แรกหรือ P(1) ให้กำเนิดลูกคู่ใหม่คือ P(3)+ ส่วน P(2)
เพิ่งสามารถผสมพันธุ์ได้ ดังนั้น F[4]
= 3 โดยมีคู่กระต่ายทั้งหมด ได้แก่ P(1), P(2),
P(3)+
-
เดือนที่ 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 คู่
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] ก็คือ จำนวนคู่รักของกระต่าย
และก็เป็นเลขฟิโบนัชชีด้วยประการฉะนี้แล
โพสต์ครั้งแรกที่ JavaBoom Collections