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

ค้นหาชุดฟีโบนักชีไม่เกิน n โดยใช้แลมบ์ดาใน Python


อนุกรมฟีบินาชีคือชุดทางคณิตศาสตร์ที่เป็นที่รู้จักซึ่งอธิบายปรากฏการณ์ทางธรรมชาติมากมาย มันเริ่มต้นด้วย 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]