Computer >> Máy Tính >  >> Lập trình >> Python

Tìm chuỗi fibonacci tối đa n bằng lambda trong Python

Chuỗi fibinacci là một chuỗi toán học thông minh được biết đến giải thích nhiều hiện tượng tự nhiên. Nó bắt đầu bằng 0 và 1 rồi tiếp tục thêm một số hạng vào số hạng trước của nó để có số hạng tiếp theo. Trong bài viết này, chúng ta sẽ xem cách tạo một số phần tử nhất định của chuỗi Fibonacci bằng cách sử dụng hàm lambda trong python.

Với tổng và bản đồ

Chúng tôi sử dụng hàm bản đồ để áp dụng hàm lambda cho từng phần tử của danh sách. Chúng tôi thiết kế cơ chế phân loại danh sách để lấy tổng của hai thuật ngữ trước đó và sử dụng phạm vi để đếm số thuật ngữ chúng ta sẽ tạo.

Ví dụ

def fibonacci(count):
   listA = [0, 1]

   any(map(lambda _:listA.append(sum(listA[-2:])),
         range(2, count)))

   return listA[:count]

print(fibonacci(8))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

[0, 1, 1, 2, 3, 5, 8, 13]

Với chức năng giảm

Trong cách tiếp cận này, chúng tôi sử dụng hàm giảm cùng với hàm lambda để lấy tổng của hai số hạng trước đó. Chúng tôi phải áp dụng lambda hai lần cùng với dải ô để giữ số lượng điều khoản được yêu cầu và nhận được kết quả cuối cùng.

Ví dụ

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))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

[0, 1, 1, 2, 3, 5, 8, 13]