Lập trình với dãy số fibonacci trong Python và Scratch
Dãy Fibonacci là một dãy số trong đó mỗi số là tổng của hai số trước đó trong dãy. Dãy Fibonacci bắt đầu bằng hai số 0 và 1. Dưới đây là một ví dụ về cách tạo dãy số Fibonacci trong Python:
Quy luật dãy số fibonacci
Quy luật để tạo dãy Fibonacci có thể được diễn tả như sau:
- Số thứ nhất và số thứ hai trong dãy là 0 và 1.
-
Số thứ ba trở đi trong dãy được tạo thành bằng cách cộng hai số trước đó.
- Số thứ ba là tổng của số thứ nhất và số thứ hai.
- Số thứ tư là tổng của số thứ hai và số thứ ba.
- Số thứ n là tổng của số thứ n-2 và số thứ n-1.
Ví dụ:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …
Số thứ ba là 0 + 1 = 1. Số thứ tư là 1 + 1 = 2. Số thứ n là số thứ n-2 + số thứ n-1.
Chương trình Python in ra 10 số đầu tiên của dãy Fibonacci
def fibonacci_sequence(n): sequence = [0, 1] # Khởi tạo dãy Fibonacci với hai số đầu tiên # Tạo dãy Fibonacci cho n số tiếp theo for i in range(2, n): next_number = sequence[i - 1] + sequence[i - 2] sequence.append(next_number) return sequence # In ra dãy Fibonacci gồm 10 số n = 10 fib_sequence = fibonacci_sequence(n) print(fib_sequence)
Khi bạn chạy đoạn mã trên, nó sẽ in ra dãy Fibonacci gồm 10 số đầu tiên: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
. Bạn có thể thay đổi giá trị của biến n
để tạo ra dãy Fibonacci với số phần tử khác nhau.
Lập trình tìm số hạng thứ n của dãy số Fibonacci trong python
Để tìm số hạng thứ n của dãy số Fibonacci trong Python, bạn có thể sử dụng phương pháp đệ quy hoặc phương pháp lặp. Dưới đây là hai ví dụ về cách lập trình để tìm số hạng thứ n của dãy Fibonacci:
Phương pháp đệ quy:
def fibonacci_recursive(n): if n <= 1: return n else: return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2) # Tìm số hạng thứ n của dãy Fibonacci n = 10 fib_number = fibonacci_recursive(n) print(fib_number)
Phương pháp lặp:
def fibonacci_iterative(n): if n <= 1: return n fib_sequence = [0, 1] for i in range(2, n + 1): fib_number = fib_sequence[i - 1] + fib_sequence[i - 2] fib_sequence.append(fib_number) return fib_sequence[n] # Tìm số hạng thứ n của dãy Fibonacci n = 10 fib_number = fibonacci_iterative(n) print(fib_number)
Cả hai ví dụ trên đều sẽ tìm số hạng thứ n của dãy Fibonacci và in ra kết quả. Bạn có thể thay đổi giá trị của biến n
để tìm số hạng khác trong dãy Fibonacci.
Lập trình tìm số hạng thứ n của dãy số Fibonacci trong Scratch
Để tìm số hạng thứ n của dãy số Fibonacci trong Scratch, bạn có thể sử dụng khối lệnh đệ quy. Dưới đây là một hướng dẫn cụ thể:
- Mở trình duyệt và truy cập vào trang web Scratch (https://scratch.mit.edu).
- Tạo một dự án mới bằng cách nhấp vào nút “Create” trên thanh công cụ.
- Xóa sạch các khối lệnh có sẵn bằng cách nhấp vào biểu tượng thùng rác.
- Tạo một đối tượng mới bằng cách nhấp vào biểu tượng “Choose a sprite from library” hoặc tải lên hình ảnh đối tượng của riêng bạn.
-
Thêm các khối lệnh sau vào kịch bản của đối tượng:
- Khối “when green flag clicked”: Bắt đầu chương trình khi nhấp vào nút xanh “Flag”.
- Khối “define fibonacci of n”: Định nghĩa khối lệnh đệ quy để tính số Fibonacci của n.
- Khối “if n = 0” và “if n = 1”: Xử lý trường hợp cơ bản khi n = 0 hoặc n = 1.
- Khối “broadcast message”: Gửi một thông điệp để yêu cầu tính số Fibonacci của n – 1 và n – 2.
- Khối “wait until” và “wait”: Chờ đến khi nhận được kết quả từ các đối tượng khác.
- Khối “set fibonacci to”: Gán giá trị của số Fibonacci đã tính được.
- Khối “broadcast message”: Gửi kết quả số Fibonacci cho đối tượng gốc.
- Đặt tên cho đối tượng và các khối lệnh theo ý muốn của bạn.
- Nhấp vào nút xanh “Flag” để bắt đầu tính số Fibonacci cho một giá trị n nhất định.
Lưu ý rằng việc tính toán số Fibonacci trong Scratch bằng đệ quy có thể tốn nhiều thời gian và tài nguyên, do đó bạn nên giới hạn giá trị của n để tránh trường hợp chương trình chạy quá lâu.