Máy Tính Số Fibonacci là gì?
Công cụ này trả về số Fibonacci thứ n, ký hiệu là \(F_n\), với bất kỳ chỉ số nguyên dương \(n\) nào. Dãy Fibonacci là một trong những dãy số nổi tiếng nhất trong toán học: mỗi số hạng bằng tổng của hai số hạng liền trước nó. Với hai số khởi đầu \(F_1 = 1\) và \(F_2 = 1\), dãy số bắt đầu bằng 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, và cứ thế kéo dài mãi mãi. Số Fibonacci xuất hiện khắp nơi trong tự nhiên, nghệ thuật, khoa học máy tính và cả tỷ lệ vàng.
Cách sử dụng
Nhập chỉ số \(n\) (1, 2, 3, ...) vào ô nhập rồi bấm tính. Máy sẽ trả về giá trị chính xác của \(F_n\). Vì số Fibonacci tăng nhanh xấp xỉ theo \(\varphi^n / \sqrt{5}\) nên chúng lớn lên cực kỳ nhanh chóng. Do đó công cụ này dùng số học số nguyên lớn (big-integer) chính xác thay vì số thực dấu phẩy động, giúp ngay cả những kết quả khổng lồ vẫn tuyệt đối chính xác, không hề có sai số làm tròn.
Giải thích công thức
Công thức truy hồi cơ bản là $$F_n = F_{n-1} + F_{n-2}, \qquad F_1 = F_2 = 1$$ với \(F_1 = 1\) và \(F_2 = 1\). Ngoài ra còn có một công thức dạng đóng, gọi là công thức Binet: $$F_n = \frac{\varphi^n - \psi^n}{\sqrt{5}}$$ trong đó \(\varphi = \frac{1 + \sqrt{5}}{2}\) là tỷ lệ vàng và \(\psi = \frac{1 - \sqrt{5}}{2}\). Cả hai cách đều cho cùng giá trị theo quy ước đánh số từ 1 này, nhưng công thức Binet sẽ mất độ chính xác khi \(n\) lớn do sai số làm tròn của số dấu phẩy động. Vì vậy chúng tôi tính kết quả theo phương pháp lặp để đảm bảo độ chính xác tuyệt đối.
Ví dụ minh họa
Với \(n = 12\), ta dựng dần dãy số: \(F_1=1\), \(F_2=1\), \(F_3=2\), \(F_4=3\), \(F_5=5\), \(F_6=8\), \(F_7=13\), \(F_8=21\), \(F_9=34\), \(F_{10}=55\), \(F_{11}=89\), \(F_{12}=144\). Vậy \(F_{12} = 144\). Kiểm tra lại bằng công thức Binet: \(\varphi^{12}\) xấp xỉ 321,9969 còn \(\psi^{12}\) xấp xỉ 0,0031, và $$\frac{321{,}9969 - 0{,}0031}{\sqrt{5}} \approx 144{,}0$$ đúng với kết quả vừa tính.
Câu hỏi thường gặp
Vì sao lại là \(F_1 = 1\) và \(F_2 = 1\) chứ không phải \(F_0 = 0\)? Máy tính này dùng quy ước đánh số từ 1 phổ biến, tức dãy bắt đầu từ chỉ số 1. Theo quy ước đánh số từ 0 thì \(F_0 = 0\) và \(F_1 = 1\); các giá trị chỉ đơn giản là dịch đi một chỉ số.
Có tính được \(n\) lớn không? Có. Công cụ dùng số học số nguyên lớn chính xác, nên dù chỉ số rất lớn vẫn trả về số nguyên đầy đủ và chính xác thay vì giá trị gần đúng.
Giá trị \(n\) nhỏ nhất hợp lệ là bao nhiêu? \(n\) phải là số nguyên dương, nên giá trị nhỏ nhất là \(n = 1\), cho kết quả \(F_1 = 1\).