Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

피보나치 자바:가이드

피보나치 자바 알고리즘 가이드

피보나치 수열은 이전 두 수의 합을 계산하여 다음 수를 계산하는 수열입니다.

이 수열은 수학에서 명성이 높다고 주장합니다. 자연에서도 나타납니다. 예를 들어, 대부분의 꽃에는 피보나치 수열처럼 배열된 꽃잎이 있습니다.

이 가이드에서는 Java를 사용하여 피보나치 수열을 계산하는 방법에 대해 설명합니다. 시작하는 데 도움이 되는 두 가지 Fibonacci Java 알고리즘을 살펴보겠습니다.

피보나치 수열이란 무엇입니까?

고등학교 수학에서 피보나치 수열에 대해 배웠을 것입니다.

피보나치 수열의 첫 번째 숫자는 0과 1입니다. 후속 숫자는 앞의 두 숫자를 더하여 계산됩니다. 더 긴 시퀀스 목록을 살펴보겠습니다.

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

이 순서는 계산하려는 숫자의 수에 따라 영원히 계속될 수 있습니다.

피보나치 수열은 두 가지 방법으로 구현할 수 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

  • 반복 함수 사용
  • 재귀 알고리즘 사용

이 두 가지 접근 방식을 모두 살펴보겠습니다.

반복적인 피보나치 자바 프로그램

반복적인 접근은 시작하기에 가장 좋은 곳입니다. 반복 프로그래밍은 for 루프와 같은 루프를 사용하여 목록을 반복하고 작업을 수행하는 경우입니다.

반복 프로그래밍을 통해 반복적인 절차를 자동화할 수 있습니다. 피보나치 수열에서 다음 숫자를 계산하는 방법에 대한 명확한 공식이 있기 때문에 반복적인 접근 방식을 사용하여 알고리즘을 구현할 수 있습니다.

프로그램의 클래스와 메서드를 선언하는 것으로 시작하겠습니다. 또한 프로그램에 사용할 세 가지 변수를 정의합니다.

public class FibonacciSequence {
	public static void main(String[] args) {
		int number = 5, firstTerm = 0, secondTerm = 1;
	}
}

변수 "숫자"는 계산할 용어의 수를 추적합니다. "firstTerm" 및 "secondTerm"은 각각 시퀀스의 첫 번째 값과 두 번째 값을 저장합니다. 이것은 나중에 프로그램에서 방금 계산한 항목 앞에 두 항목을 저장하도록 변경됩니다.

이제 시퀀스에서 다음 피보나치 수를 계산하는 for 루프를 작성해 보겠습니다.

for (int i = 0; i < number; ++i) {
	System.out.println(firstTerm);

	int nextNumber = firstTerm + secondTerm;
	firstTerm = secondTerm;
	secondTerm = nextNumber;
}

이 루프는 먼저 firstTerm의 값을 출력합니다. 첫 번째 반복에서 이 값은 0입니다. 다음으로 루프는 firstTerm과 secondTerm을 더하여 다음 숫자를 계산합니다.

그런 다음 코드는 firstTerm의 값을 secondTerm의 값에 할당합니다. secondTerm은 다음 숫자가 됩니다.

코드를 실행하고 어떤 일이 일어나는지 봅시다:

0
1
1
2
3

우리 코드는 시퀀스의 처음 5개 값을 계산했습니다.

재귀적 피보나치 자바 프로그램

피보나치 수열은 재귀 알고리즘을 사용하여 계산할 수 있습니다. 자신을 호출하여 문제를 해결하는 함수입니다. 피보나치 수열에서 숫자를 계산하는 데 사용할 일관된 공식이 있기 때문에 재귀 알고리즘을 사용할 수 있습니다.

클래스를 초기화하여 시작하겠습니다.

class FibonacciSequence {
}

다음으로 재귀를 사용하여 시퀀스의 다음 값을 계산하는 함수를 작성합니다.

static void getNextValue(int number, int firstTerm, int secondTerm) {
	if (number > 0) {
		System.out.println(firstTerm);

		int nextNumber = firstTerm + secondTerm;
	firstTerm = secondTerm;
	secondTerm = nextNumber;
	getNextValue(number - 1, firstTerm, secondTerm);
	}
}

이 메소드는 firstTerm과 secondTerm의 값을 더하여 다음 값을 계산합니다. 이것은 "숫자"의 값이 0보다 큰 한 발생합니다. "숫자"는 시퀀스에서 계산할 숫자가 얼마나 남았는지 추적합니다.

다음 값이 계산되면 getNextValue() 함수가 재귀적으로 호출됩니다. 이번에는 "숫자"의 값이 1 감소합니다. 함수가 실행될 때마다 새로운 숫자가 계산되기 때문입니다.

재귀 함수를 사용하고 사용할 변수를 선언하는 메인 프로그램을 작성해 보겠습니다.

public static void main(String args[]) {
	int number = 5, firstTerm = 0, secondTerm = 1;
	getNextValue(number, firstTerm, secondTerm);
}

"숫자"는 계산하려는 값의 수를 나타냅니다. firstTerm은 목록의 첫 번째 용어입니다. secondTerm은 목록의 두 번째 용어입니다.

getNextValue를 호출할 때 방법, 우리의 계산이 시작됩니다. 코드를 실행하여 피보나치 수를 표시해 보겠습니다.

0
1
1
2
3

피보나치 수열의 처음 5개 값이 계산되었습니다!

결론

피보나치 수열은 수학, 컴퓨팅 및 자연에서 일반적입니다. 시퀀스의 다음 숫자는 앞의 두 숫자를 더하여 계산됩니다. 순서는 숫자 0과 1로 시작합니다.

이 시퀀스는 반복 또는 재귀 접근 방식을 사용하여 계산할 수 있습니다. 이제 Java에서 피보나치 수열을 계산할 준비가 되었습니다.