Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีเขียนโค้ดลำดับฟีโบนักชีใน Python

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

ลำดับนี้ได้พบวิธีการในการเขียนโปรแกรม มักใช้เพื่อฝึกนักพัฒนาเกี่ยวกับอัลกอริธึมและลูป

ในคู่มือนี้ เราจะพูดถึงวิธีเขียนโค้ดลำดับ Fibonacci ใน Python เราจะพิจารณาสองวิธีที่คุณสามารถใช้เพื่อสร้างลำดับฟีโบนักชีได้:แบบวนซ้ำและแบบเรียกซ้ำ

ลำดับฟีโบนักชีคืออะไร

ลำดับฟีโบนักชีคือชุดของตัวเลข ตัวเลขแต่ละตัวเป็นผลคูณของตัวเลขสองตัวก่อนหน้าในลำดับ ลำดับเริ่มต้นดังนี้:

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

มันจะดำเนินต่อไปเรื่อยๆ จนกว่าคุณจะหยุดคำนวณตัวเลขใหม่ กฎสำหรับการคำนวณตัวเลขถัดไปในลำดับคือ:

x(n) = x(n-1) + x(n-2)

x(n) คือตัวเลขถัดไปในลำดับ x(n-1) เป็นเทอมก่อนหน้า x(n-2) คือพจน์ที่อยู่ก่อนหน้าตัวสุดท้าย

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

Python Fibonacci Sequence:แนวทางซ้ำ

เริ่มต้นด้วยการพูดถึงวิธีการวนซ้ำเพื่อนำชุดฟีโบนักชีไปใช้

วิธีนี้ใช้การวนซ้ำ "while" ซึ่งคำนวณตัวเลขถัดไปในรายการจนกว่าจะตรงตามเงื่อนไขเฉพาะ ทุกครั้งที่รัน while loop โค้ดของเราจะวนซ้ำ นี่คือเหตุผลที่เรียกว่าการวนซ้ำ

เริ่มต้นด้วยการตั้งค่าเริ่มต้นสองสามค่า:

terms_to_calculate = 9
n1, n2 = 0, 1
counted = 0

เราได้ประกาศตัวแปรสี่ตัว

ตัวแปรแรกติดตามจำนวนค่าที่เราต้องการคำนวณ ตัวแปรสองตัวถัดไป คือ n1 และ n2 เป็นสองรายการแรกในรายการ เราจำเป็นต้องระบุค่าเหล่านี้ มิฉะนั้น โปรแกรมของเราจะไม่ทราบว่าจะเริ่มต้นจากที่ใด ค่าเหล่านี้จะเปลี่ยนไปเมื่อเราเริ่มคำนวณตัวเลขใหม่

ตัวแปรสุดท้ายติดตามจำนวนคำศัพท์ที่เราคำนวณในโปรแกรม Python ของเรา

มาเขียนลูปที่คำนวณเลขฟีโบนักชีกัน:

while counted < terms_to_calculate:
	print(n1)
	new_number = n1 + n2
	n1 = n2
	n2 = new_number
	counted += 1

ในขณะที่ลูปทำงานจนกว่าจำนวนค่าที่เราคำนวณจะเท่ากับจำนวนทั้งหมดที่เราต้องการคำนวณ ลูปพิมพ์ค่าของ n1 ไปยังเชลล์ จากนั้นจะคำนวณตัวเลขถัดไปโดยบวกตัวเลขก่อนหน้าในลำดับไปยังตัวเลขก่อนหน้านั้น

เราสลับค่าของ n1 ให้เท่ากับ n2 ทำให้ n1 เป็นหมายเลขแรกหลังหมายเลขใหม่ จากนั้นเราตั้งค่า n2 ให้เท่ากับจำนวนใหม่ ต่อไป เราใช้ตัวดำเนินการ +=เพื่อเพิ่ม 1 ให้กับตัวแปรที่นับของเรา

รหัสของเราส่งคืน:

1

1

2

3

5

8

13

21

โปรแกรมของเราคำนวณค่าเก้าค่าแรกในลำดับฟีโบนักชีได้สำเร็จ!

Python Fibonacci Sequence:Recursive Approach

การคำนวณลำดับฟีโบนักชีเป็นกรณีใช้งานที่สมบูรณ์แบบสำหรับการเรียกซ้ำ ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่ขึ้นอยู่กับตัวมันเองในการแก้ปัญหา

ฟังก์ชันแบบเรียกซ้ำจะแบ่งปัญหาออกเป็นปัญหาย่อยๆ และใช้ตัวเองในการแก้ปัญหา เริ่มต้นด้วยการเริ่มต้นตัวแปรที่ติดตามจำนวนตัวเลขที่เราต้องการคำนวณ:

terms_to_calculate = 9

โปรแกรมนี้ต้องการเริ่มต้นตัวแปรเดียวเท่านั้น ต่อไป เราสามารถสร้างฟังก์ชันที่คำนวณตัวเลขถัดไปในลำดับได้:

def calculate_number(number):
	if number <= 1:
		return number
	else:
		return(calculate_number(number-1) + calculate_number(number-2))

ฟังก์ชันนี้จะตรวจสอบว่าจำนวนที่ส่งเข้าไปมีค่าเท่ากับหรือน้อยกว่า 1 หรือไม่ ถ้าใช่ ตัวเลขนั้นจะถูกส่งกลับโดยไม่มีการคำนวณใดๆ มิฉะนั้น เราจะเรียกใช้ฟังก์ชัน calc_number() สองครั้งเพื่อคำนวณผลรวมของสองรายการก่อนหน้าในรายการ

สุดท้าย เราต้องเขียนโปรแกรมหลักที่รันฟังก์ชันของเรา:

for number in range(terms_to_calculate):
	print(calculate_number(number))

การวนซ้ำนี้จะดำเนินการหลายครั้งเท่ากับค่าของ Terms_to_calculate กล่าวอีกนัยหนึ่งลูปของเราจะดำเนินการ 9 ครั้ง การวนซ้ำนี้เรียก calculate_number() วิธีการคำนวณเลขถัดไปในลำดับ มันพิมพ์หมายเลขนี้ไปที่คอนโซล

รหัสของเราส่งคืน:

1

1

2

3

5

8

13

21

ผลลัพธ์จากโค้ดนี้เหมือนกับตัวอย่างก่อนหน้าของเรา

ความแตกต่างอยู่ในแนวทางที่เราใช้ เราได้กำหนดฟังก์ชันเรียกซ้ำซึ่งเรียกตัวเองเพื่อคำนวณตัวเลขถัดไปในลำดับ วิธีการแบบเรียกซ้ำมักจะชอบมากกว่าวิธีการวนซ้ำเพราะเข้าใจได้ง่ายกว่า

รหัสนี้ใช้บรรทัดน้อยกว่าตัวอย่างแบบวนซ้ำของเราอย่างมาก ยิ่งไปกว่านั้น เราต้องเริ่มต้นตัวแปรเพียงตัวเดียวเพื่อให้โปรแกรมนี้ทำงานได้ ตัวอย่างการทำซ้ำของเรากำหนดให้เราต้องเริ่มต้นตัวแปรสี่ตัว

บทสรุป

ลำดับฟีโบนักชีสามารถสร้างได้โดยใช้วิธีการวนซ้ำหรือแบบเรียกซ้ำ

วิธีการวนซ้ำขึ้นอยู่กับการวนรอบในขณะที่เพื่อคำนวณตัวเลขถัดไปในลำดับ วิธีการแบบเรียกซ้ำเกี่ยวข้องกับการกำหนดฟังก์ชันที่เรียกตัวเองเพื่อคำนวณตัวเลขถัดไปในลำดับ

ตอนนี้คุณพร้อมที่จะคำนวณลำดับฟีโบนักชีใน Python อย่างผู้เชี่ยวชาญแล้ว!