Số Fibonacci với JavaScript

So Fibonacci Voi Javascript



“JavaScript bây giờ là ECMAScript. Sự phát triển của JavaScript được tiếp tục với tên gọi ECMAScript. Từ dành riêng “javascript” vẫn được sử dụng, chỉ để tương thích ngược. ”

Ý nghĩa của số Fibonacci

Số Fibonacci là một dãy số nguyên dương cụ thể, bắt đầu từ 0. Các số nguyên là số nguyên dương. Vì vậy, số Fibonacci là một dãy số nguyên hoặc số tự nhiên cụ thể, bắt đầu từ 0. Trong dãy số này, hai số đầu tiên là 0 và 1, theo thứ tự đó. Phần còn lại của các số được phát triển từ đó bằng cách cộng hai số trước đó. Mười hai số Fibonacci đầu tiên thu được như sau:

0
1
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
8 + 5 = 13
13 + 8 = 21
21 + 13 = 34
34 + 21 = 55
55 + 34 = 89







Nói cách khác, mười hai số Fibonacci đầu tiên là:



0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89



Tất nhiên, số thứ mười ba sẽ là: 144 = 55 + 89. Số Fibonacci có thể được tưởng tượng là trong một mảng, như sau:





0 1 1 hai 3 5 số 8 13 hai mươi mốt 3. 4 55 89

Một mảng có các chỉ mục. Trong bảng sau, hàng thứ hai hiển thị các chỉ mục dựa trên 0 tương ứng cho các số Fibonacci trong một mảng:

0 1 1 hai 3 5 số 8 13 hai mươi mốt 3. 4 55 89
0 1 hai 3 4 5 6 7 số 8 9 10 mười một

Với các chỉ mục dựa trên 0, nếu có mười hai phần tử, thì chỉ số cuối cùng là 11.



Số Fibonacci có thể được tạo ra trong thời gian O (n) hoặc trong thời gian O (1). Trong các biểu thức độ phức tạp thời gian này, n có nghĩa là n hoạt động chính và 1 có nghĩa là 1 hoạt động chính. Với O (n), n số Fibonacci được tạo ra, bắt đầu từ 0. Với O (1), một số Fibonacci được tạo ra từ chỉ số tương ứng. Đó là lý do tại sao O (1) chỉ thực hiện một phép toán chính thay vì n phép toán chính.

Mục đích của bài viết này là giải thích cách tạo số Fibonacci, bằng cách sử dụng JavaScript, thực sự là ECMAScript ngày nay.

Môi trường mã hóa

Môi trường node.js sẽ không được sử dụng như người đọc có thể đã đoán trước. Thay vào đó, trình duyệt sẽ được sử dụng để giải thích mã và hiển thị kết quả. Tập lệnh (mã) phải được viết trong tệp soạn thảo văn bản, tệp này sẽ được lưu với phần mở rộng “.html”. Tập lệnh phải có mã tối thiểu:

HTML DOCTYPE >
< html >
< cái đầu >
< Tiêu đề > Số Fibonacci với JavaScript Tiêu đề >
cái đầu >
< thân hình >
< loại tập lệnh = 'text/ecmascript' >

script >
thân hình >
html >

Đây là mã tối thiểu gần đúng mà một trang web cần. Tất cả mã hóa cho bài viết này nằm giữa các thẻ, .

Để chạy mã đã viết (thêm), chỉ cần nhấp đúp vào biểu tượng của tên tệp, và trình duyệt của máy tính sẽ mở nó.

Định nghĩa về số Fibonacci

Có một định nghĩa toán học cho số Fibonacci. Nó được định nghĩa như sau:

Trong đó Fn là số Fibonacci tương ứng với chỉ số dựa trên 0, n.

Hai số đầu tiên: 0 và 1, được khai báo trước, theo thứ tự đó. Dòng cuối cùng của hàm này hiển thị cách phần còn lại của các số bắt nguồn từ hai số đầu tiên theo thứ tự của chúng.

Định nghĩa này cũng là một trong những công thức cho số Fibonacci.

Sản xuất số Fibonacci trong thời gian O (n)

Nếu n là 1, thì chỉ 0 được hiển thị dưới dạng số Fibonacci. Nếu n là 2, thì 0 và 1 sẽ được hiển thị dưới dạng số Fibonacci, theo thứ tự đó. Nếu n là 3, thì 0, 1 và 1 sẽ được hiển thị dưới dạng số Fibonacci theo thứ tự đó. Nếu n là 4, thì 0, 1, 1 và 2 sẽ được hiển thị dưới dạng số Fibonacci, theo thứ tự đó. Nếu n là 5, thì 0, 1, 1, 2 và 3 sẽ được hiển thị dưới dạng số Fibonacci, theo thứ tự đó. Nếu n là 6, thì 0, 1, 1, 2, 3 và 5 sẽ được hiển thị dưới dạng số Fibonacci, theo thứ tự đó - và cứ tiếp tục như vậy.

Hàm ECMAscript để tạo n số nguyên Fibonacci đầu tiên (số) là:

< loại tập lệnh = 'text/ecmascript' >
hàm số fibonacci ( Một ) {
N = MỘT. chiều dài ;
nếu ( N > 0 )
Một [ 0 ] = 0 ;
nếu ( N > 1 )
Một [ 1 ] = 1 ;
( tôi = hai ; tôi < N ; tôi ++ ) { // n = 0 và n = 2 đã được xem xét
currNo = Một [ tôi - 1 ] + Một [ tôi - hai ] ;
Một [ tôi ] = currNo ;
}
}

Thẻ tập lệnh đóng chưa được hiển thị. Hàm nhận một mảng. Hai số Fibonacci đầu tiên được gán ở vị trí của chúng. Vòng lặp for lặp lại từ chỉ mục dựa trên 0, 2 đến ngay dưới n. Câu lệnh quan trọng nhất trong vòng lặp for là:

currNo = A [i - 1] + A [i - 2];

Điều này thêm hai số trước đó ngay lập tức trong mảng để có số hiện tại. Vào thời điểm hàm fibonacci () kết thúc thực thi, tất cả các phần tử của mảng là n số Fibonacci đầu tiên. Mã phù hợp để gọi hàm fibonacci () và hiển thị các số Fibonacci là:

N = 12 ;
arr = Mới Mảng ( N ) ;
fibonacci ( arr ) ;
( tôi = 0 ; tôi < N ; tôi ++ )
tài liệu. viết ( arr [ tôi ] + '' ) ;
tài liệu. viết ( '
'
) ;
script >

Mã này hiển thị thẻ tập lệnh đóng. Mã được gõ bên dưới mã trên. Kết quả hiển thị trên trang web là:

0 1 1 2 3 5 8 13 21 34 55 89

như mong đợi.

Sản xuất một số Fibonacci trong O (1) thời gian

O (1) là thời gian không đổi. Nó đề cập đến một hoạt động chính. Một công thức toán học khác để tạo ra số Fibonacci là:

Lưu ý rằng ở vế phải của phương trình, nó không phải là căn bậc hai của 5 được nâng lên lũy thừa n; nó là biểu thức trong ngoặc đơn được nâng lên lũy thừa n. Có hai cách diễn đạt như vậy.

Nếu n là 0, Fibn sẽ là 0. Nếu n là 1, Fibn sẽ là 1. Nếu n là 2, Fibn sẽ là 1. Nếu n là 3, Fibn sẽ là 2. Nếu n là 4, Fibn sẽ là 3 - và như thế. Người đọc có thể xác minh công thức này về mặt toán học bằng cách thay thế các giá trị khác nhau cho n và đánh giá. n là chỉ số dựa trên 0 trong công thức này. Kết quả là số Fibonacci tương ứng.

Mã ECMAScript (JavaScript) cho công thức này là:

< loại tập lệnh = 'text/ecmascript' >
hàm số fibNo ( N ) {
FibN = ( môn Toán . pow ( ( 1 + môn Toán . sqrt ( 5 ) ) / hai , N ) - môn Toán . pow ( ( 1 - môn Toán . sqrt ( 5 ) ) / hai , N ) ) / môn Toán . sqrt ( 5 ) ;
trở về FibN ;
}

Thẻ tập lệnh đóng chưa được hiển thị. Lưu ý cách sử dụng các hàm xác định trước lũy thừa (pow) và căn bậc hai (sqrt). Trong ECMAScript (JavaScript), không cần nhập mô-đun Toán học. Hàm fibNo () thực hiện công thức trực tiếp. Lệnh gọi và hiển thị phù hợp cho hàm fibNo () trên trang web là:

N = mười một ;
bên phải = fibNo ( N ) ;
tài liệu. viết ( bên phải ) ;
script >

Mã hiển thị thẻ tập lệnh đóng. Đầu ra là:

89.00000000000003

Có thể loại bỏ các chữ số thập phân không cần thiết khỏi câu trả lời. Tuy nhiên, đó là một cuộc thảo luận cho một số thời gian khác.

Nếu yêu cầu nhiều hơn một số Fibonacci, thì mã phải gọi công thức một lần cho mỗi chỉ số n tương ứng dựa trên số 0.

Sự kết luận

Số Fibonacci là một dãy số nguyên dương cụ thể, bắt đầu từ 0. Các số nguyên là số nguyên dương. Vì vậy, số Fibonacci là một dãy số nguyên hoặc số tự nhiên cụ thể, bắt đầu từ 0. Trong dãy số này, hai số đầu tiên là 0 và 1, theo thứ tự đó. Hai số đầu tiên này chỉ được định nghĩa như vậy. Phần còn lại của các số được phát triển từ đó bằng cách thêm hai số liền kề trước đó.

Sau khi tạo ra hai số Fibonacci đầu tiên, để tạo ra phần còn lại của các số Fibonacci, để có tổng số n số, một vòng lặp for phải được sử dụng với câu lệnh:

currNo = A [i - 1] + A [i - 2];

Điều này thêm hai số Fibonacci cuối cùng để có số Fibonacci hiện tại.

Khi được cung cấp một chỉ số dựa trên 0, để có số Fibonacci tương ứng, hãy sử dụng công thức: