23.4. Dãy Fibonacci. Dãy số Fibonacdi được xác định như sau: F0 = 0, F1 = 1,..... Fn= Fn-1 + Fn-2;...

Câu hỏi:

23.4. Dãy Fibonacci. Dãy số Fibonacdi được xác định như sau: F0 = 0, F1 = 1,..... Fn= Fn-1 + Fn-2; (Với n lớn hơn hoặc bằng 2). Điều thú vị là dãy số này nảy sinh từ một bài toán thực tế - bài toán đếm thỏ. Một cặp thỏ (gồm một thỏ đực và một thỏ cái) cứ mỗi tháng đẻ được một cặp thỏ con (cũng gồm một thỏ đực và thỏ cái); một cặp thỏ con, khi tròn 2 tháng tuổi, sau mỗi tháng đẻ ra một cặp thỏ con, và quá trình sinh nở cứ thế tiếp diễn. Hỏi sau n tháng có bao nhiêu cặp thỏ, nếu đầu năm (tháng Giêng) có một cặp thỏ sơ sinh?

 F0 = 0, F1 = 1,..... Fn= Fn-1 + Fn-2; (Với n lớn hơn hoặc bằng 2). Điều thú vị là dãy số này nảy sinh từ một bài toán thực tế - bài toán đếm thỏ

Trong hình vẽ trên, quy ước:

Cặp thỏ nhỏ là cặp thỏ có độ tuổi 1 tháng.

Cặp thỏ to hơn là cặp thỏ có khả năng sinh sản.

Quan sát hình vẽ trên ta nhận thấy:

Tháng Giêng và tháng Hai: Chỉ có 1 cặp thỏ.

Tháng Ba: Cặp thỏ này sẽ đẻ ra một cặp thỏ con, do đó trong tháng này có 2 cặp thỏ.

Tháng Tư: Chỉ có cặp thỏ ban đầu sinh con nên đến thời điểm này có 3 cặp thỏ.

Tháng Năm: Có hai cặp thỏ (cặp thỏ đầu và cặp thỏ được sinh ra ở tháng Ba) cùng sinh con nên ở tháng này có 2 + 3 = 5 cặp thỏ.

Tháng Sáu: Có ba cặp thỏ (2 cặp thỏ đầu và cặp thỏ được sinh ra ở tháng Tư) cũng sinh con ở thời điểm này nên đến đây có 3 + 5 = 8 cặp Thỏ.

...

Quá trình này có thế được khái quát như sau:

Nếu n là số tự nhiên khác 0, gọi f(n) là số cặp thỏ có ở tháng thứ n, ta có:

Với n= 1 ta được f(1) = 1.

Với n= 2 ta được f(2) = 1.

Với n = 3 ta được f(3) = 2.

Do đó với n > 3 ta được: f(n) = f(n - 1) + f(n - 2).

Điều đó có thể được giải thích như sau: Các cặp thỏ sinh ra ở tháng n - 1 không thể sinh con ở tháng thứ n, và ở tháng này cặp thỏ tháng thứ n - 2 sinh ra một cặp thỏ con nên số cặp thỏ được sinh ra ở tháng thứ n chính là giá trị của f(n - 2).

Viết chương trình nhập n từ bàn phím, tạo và in ra dãy số A bao gồm n số hạng đầu của dây Fibonacci.

Câu trả lời:
Người trả lời: GV. Đỗ Thị Giang
Câu trả lời chi tiết hơn cho câu hỏi về viết chương trình Python để tạo và in ra dãy số Fibonacci là:

```python
# Hàm tính dãy Fibonacci
def Fibonacci_sequence(n):
fibonacci = [0, 1]
i = 2
while i <= n:
fibonacci.append(fibonacci[i-1] + fibonacci[i-2])
i += 1
return fibonacci

# Nhập số tự nhiên n từ người dùng
n = int(input("Nhập số tự nhiên n >= 2: "))

# In ra dãy Fibonacci gồm n số hạng đầu
result = Fibonacci_sequence(n)
print(result)
```

Đoạn mã trên bao gồm một hàm tính dãy Fibonacci và sau đó sử dụng hàm này để in ra dãy số Fibonacci gồm n số hạng đầu, với n được nhập từ người dùng. Kết quả sẽ được in ra màn hình.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.13126 sec| 2208.711 kb