อนุกรมฟีบินาชีคือชุดทางคณิตศาสตร์ที่เป็นที่รู้จักซึ่งอธิบายปรากฏการณ์ทางธรรมชาติมากมาย มันเริ่มต้นด้วย 0 และ 1 จากนั้นจึงเพิ่มเทอมในเทอมก่อนหน้าเพื่อให้ได้เทอมถัดไป ในบทความนี้ เราจะมาดูวิธีสร้างองค์ประกอบจำนวนหนึ่งของชุดฟีโบนักชีโดยใช้ฟังก์ชันแลมบ์ดาในไพ ธ อน
พร้อมผลรวมและแผนที่
เราใช้ฟังก์ชันแผนที่เพื่อใช้ฟังก์ชันแลมบ์ดากับแต่ละองค์ประกอบของรายการ เราออกแบบกลไกการแบ่งส่วนรายการเพื่อรับผลรวมของสองคำก่อนหน้า และใช้ช่วงเพื่อนับจำนวนคำที่เราจะสร้าง
ตัวอย่าง
def fibonacci(count): listA = [0, 1] any(map(lambda _:listA.append(sum(listA[-2:])), range(2, count))) return listA[:count] print(fibonacci(8))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
[0, 1, 1, 2, 3, 5, 8, 13]
พร้อมฟังก์ชันลด
ในแนวทางนี้ เราใช้ฟังก์ชันรีดิวซ์ร่วมกับฟังก์ชันแลมบ์ดาเพื่อรับผลรวมของสองเทอมก่อนหน้า เราต้องใช้แลมบ์ดาสองครั้งพร้อมกับช่วงเพื่อให้นับจำนวนเทอมที่ต้องการและได้ผลลัพธ์สุดท้าย
ตัวอย่าง
from functools import reduce fib_numbers = lambda y: reduce(lambda x, _: x + [x[-1] + x[-2]], range(y - 2), [0, 1]) print(fib_numbers(8))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
[0, 1, 1, 2, 3, 5, 8, 13]