CodeGym /Blog Java /Ngẫu nhiên /Chuỗi Fibonacci trong Java

Chuỗi Fibonacci trong Java

Xuất bản trong nhóm
Trước khi xem chương trình chuỗi Fibonacci trong Java, chúng ta hãy khám phá cách tính toán số Fibonacci là gì.
“Chuỗi Fibonacci được hình thành khi chúng ta cộng hai số cuối cùng liên tiếp của chuỗi bắt đầu bằng 0 và 1.”
Nói cách khác, chúng ta có thể nói, trong dãy Fibonacci, số tiếp theo bằng tổng của hai số cuối. Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34… Nếu chúng ta nhìn vào dãy số trên, việc tính toán trong toán học trông khá đơn giản. Bạn chỉ cần lấy hai số fibonacci cuối cùng, cộng chúng lại và bạn sẽ có. Kết quả là số mới nhất trong chuỗi. Vì vậy, số tiếp theo trong dãy Fibonacci sẽ là 21 + 34 = 55. Tuy nhiên, trong Java có nhiều thuật toán khác nhau để thực hiện điều đó. Chúng ta hãy xem xét những cách có thể của chúng tôi.

Chuỗi Fibonacci trong Java [ Phương pháp lặp ]

Cách đầu tiên và cơ bản nhất của chúng tôi để tính toán chương trình chuỗi Fibonacci trong Java sẽ sử dụng phương pháp lặp. Như tên gợi ý, chúng ta sẽ lặp lại chuỗi này bằng một vòng lặp. Hãy cùng tìm hiểu sâu hơn trong ví dụ sau.

Ví dụ

public class IterativeFibonacci {

	public static void fibonacci(int MAX) {

		int firstNumber = 0;
		int secondNumber = 1;
		int fibonacci = '\0';

		System.out.print(firstNumber + " ");
		System.out.print(secondNumber + " ");

		for (int i = 2; i < MAX; i++) {

			fibonacci = firstNumber + secondNumber;
			System.out.print(fibonacci + " ");

			firstNumber = secondNumber;
			secondNumber = fibonacci;
		}
	}

	public static void main(String[] args) {

		System.out.println("Print Fibonacci Series Using Iterative Method");
		int MAX = 15;
		fibonacci(MAX);

	}
}

đầu ra

In dãy Fibonacci bằng phương pháp lặp 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

Giải trình

Trong ví dụ trên, chúng ta đang sử dụng một phương thức có tên là “ fibonacci ” để in chuỗi fibonacci lặp đi lặp lại. Biến MAX lưu trữ tổng số số Fibonacci bạn muốn in. Hai biến firstNumbertwoNumber lần lượt lưu trữ hai số fibonacci đầu tiên. Sau đó vòng lặp for bắt đầu với i = 2, vì số fibonacci thứ nhất và thứ hai đã được in sẵn. Trong mỗi lần lặp, số thứ nhất và số thứ hai được cập nhật để duy trì chuỗi. Vòng lặp kết thúc khi nó đạt đến giới hạn MAX, tức là; tôi < TỐI ĐA.

Chuỗi Fibonacci sử dụng đệ quy trong Java

Vì bạn đã quen với phương pháp lặp nên hãy tính chuỗi Fibonacci bằng cách sử dụng đệ quy trong Java.

Ví dụ

public class RecursiveFibonacci {

	// recursive method to return the fibonacci series
	public static int fibonacci(int MAX) {

		// base case
		if (MAX <= 1) {
			return MAX;
		}

		// recursive call
		else {
			// calculate the last two fibonacci numbers recursively
			return fibonacci(MAX - 2) + fibonacci(MAX - 1);
		}

	}

	public static void main(String[] args) {

		System.out.println("Print Fibonacci Series Using Recursion in Java");

		int MAX = 10;
		for (int i = 0; i < MAX; i++) {
		    System.out.print(fibonacci(i) + " ");
		}
	}
}

đầu ra

In dãy Fibonacci bằng đệ quy trong Java 0 1 1 2 3 5 8 13 21 34

Giải trình

Đầu tiên chúng ta xác định số chữ số MAX cho chuỗi Fibonacci đệ quy trong Java. Sau đó, chúng ta gọi hàm đệ quy là “ fibonacci ”. Như các bạn đã biết, để sử dụng đệ quy trong Java, chúng ta phải định nghĩa và xử lý 2 trường hợp. Đầu tiên là trường hợp cơ sở và trường hợp còn lại là trường hợp đệ quy. Trong trường hợp cơ sở, chúng tôi kiểm tra xem giá trị MAX có nhỏ hơn hoặc bằng 1 hay không. Nếu giá trị này đúng thì kết quả trả về cùng một số (hãy tưởng tượng hai chữ số đầu tiên của fibonacci 0 và 1). Đó là cách tính số cơ sở. Trong lệnh gọi đệ quy, chúng tôi tính toán hai số cuối của chuỗi bằng cách giảm một và hai từ MAX. Phương thức fibonacci sẽ tiếp tục gọi chính nó cho đến khi đạt đến hai chữ số cuối (0 và 1), cộng chúng lại rồi tiếp tục cộng hai chữ số cuối cho đến khi đạt MAX.

Phần kết luận

Hy vọng đến đây bạn đã hiểu được hai cách tính fibonacci khác nhau trong Java. Bạn cũng có thể sử dụng lập trình động để thử thách bản thân. Như mọi khi, chúng tôi mong bạn luyện tập và tiến bộ hơn mỗi ngày. Hãy tiếp tục học hỏi và tiếp tục phát triển!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION