>  기사  >  Java  >  Java의 피보나치 수열

Java의 피보나치 수열

WBOY
WBOY원래의
2024-08-30 16:25:45489검색

피보나치 수열은 각 숫자가 이전 두 값의 합으로 작용하고 수열이 항상 기본 정수 0과 1로 시작하는 과정에 있습니다. 피보나치 수열은 황금비와 밀접한 관련이 있습니다. 이번 주제에서는 자바의 피보나치 수열에 대해 알아보겠습니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

공식:

안 = 안 − 2 + 안 − 1
Fibonacci series for first 21 numbers
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
처음 21개 숫자에 대한 피보나치 수열 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765

주요 애플리케이션

다음은 Java 피보나치 수열의 주요 응용 프로그램입니다.

  • 마일을 킬로미터로, 킬로미터를 마일로 변환합니다.
  • 애자일 방법론의 일부 사례
  • 유클리드의 알고리즘 런타임 분석 계산은 이 계열 기법을 사용하여 수행됩니다.
  • 피보나치 통계는 일부 의사 난수 생성기에 수학적으로 사용됩니다.
  • 포커 계획 과정에는 이 기술이 사용됩니다.
  • 피보나치 힙의 데이터 구조 기법은 피보나치 시리즈 기법을 사용하여 구현됩니다.
  • 광학에서는 굴절률이 서로 다른 서로 다른 재료로 쌓인 두 개의 반투명 판의 처음부터 끝까지 시야에서 빛줄기가 빛나는 동안 세 개의 표면, 즉 정점, 중앙 및 바닥면에서 반사될 수 있습니다. 두 접시. k>에 대해 k반사를 갖는 서로 다른 광선 경로의 숫자입니다. 1은 {표시 스타일 k}가 피보나치 수입니다.

피보나치 시리즈 프로그램(비재귀 프로그램)

다음은 피보나치 수열 프로그램입니다.

코드:

// Fibonacci series program
public class Fibonacci {
// main program
public static void main(String[] args) {
int count = 10, var1 = 0, var2 = 1;
System.out.print("First " + count + " terms: ");
// Fibonacci series formation loop
for (int i = 1; i <= count; ++i)
{
System.out.print(var1 + " + ");
int added_sum= var1 + var2;
var1 = var2;
var2 = added_sum;
}
}
}

출력:

Java의 피보나치 수열

설명:

  • 이 프로그램은 주어진 숫자 범위에 대해 피보나치 수열을 계산합니다.
  • 여기서 이 프로세스는 재귀적 기술을 사용하지 않고 달성됩니다.

프로그램 알고리즘

  • 루트 클래스 Fibonacci는 이 클래스에 포함된 모든 프로그램 코드가 피보나치 수열을 달성하는 기능을 다루어야 한다는 조건으로 선언됩니다.
  • 루트 클래스 내부에는 메인 메소드가 선언되어 있습니다. 기본 메소드는 일반적으로 중요한 Java 메소드 역할을 합니다. 프로그램에 기본 메소드가 없으면 JVM 실행이 발생하지 않습니다. 메인 메소드의 다양한 하위 구성요소에 대한 설명은 아래와 같습니다.
  • 다음으로 변수 초기화 섹션이 암시됩니다. 이 섹션에는 세 가지 다른 변수의 초기화가 포함됩니다. 그 중 2개는 변수 레벨 값 교환을 통해 피보나치 논리를 구현하기 위한 것이고, 또 다른 변수는 피보나치 논리를 생성해야 하는 값의 개수를 조절하기 위해 적용됩니다.
  • 피보나치 수열 프로그램의 핵심 로직은 프로그램 섹션에서 아래 주어진 for 루프를 사용하여 구현됩니다.

코드:

for (int i = 1; i <= count; ++i)
{
System.out.print(var1 + " + ");
int added_sum= var1 + var2;
var1 = var2;
var2 = added_sum;
}
  • 이 for 루프 섹션의 논리는 다음과 같습니다. 처음에는 루프에서 다양한 값이 수행됩니다. 루프는 모든 흐름의 범위 값이 증가하면서 발생합니다. 또한 모든 흐름에서 두 스왑 변수의 값은 세 번째 변수로 합산됩니다.
  • 합산하면 두 번째 변수 값이 첫 번째 변수에 암시되므로 첫 번째 변수 값이 이 프로세스에서 플러시됩니다. 다음 단계에서는 합산된 값이 두 번째 변수에 할당됩니다.

따라서 이 인스턴스가 끝나면 단일 논리 흐름에 대해 다음과 같은 일이 적용됩니다.

  • 첫 번째 변수의 값이 플러시됩니다.
  • 첫 번째 변수에는 기존의 두 번째 변수 값이 채워집니다.
  • 합계된 값이 두 번째 변수로 이동됩니다.

필요한 값의 개수에 대해 아래 논리 시퀀스를 수행하는 과정에서 피보나치 수열을 얻을 수 있습니다.

1. 피보나치 시리즈 프로그램(배열 사용)

코드:

import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int Count = 15;
long[] array = new long[Count];
array[0] = 0;
array[1] = 1;
for (int x = 2; x < Count; x++) {
array[x] = array[x - 1] + array[x - 2];
}
System.out.print(Arrays.toString(array));
}
}

출력 :

Java의 피보나치 수열

설명:

  •  위에 작성된 프로그램 로직을 암시하지만 이 경우 피보나치 입력은 배열의 일부로 저장됩니다.
  • 그러므로 위에서 언급한 모든 작업은 배열과 관련하여 수행됩니다.

2. 피보나치 시리즈 프로그램(루프를 암시하지 않음)

코드:

public class Fibonaccifunction
{
private static int indexvalue = 0;
private static int endPoint = 9;
public static void main (String[] args)
{
int number1 = 0;
int number2 = 1;
fibonaccifunction(number1, number2);
}
public static void fibonaccifunction(int number1, int number2)
{
System.out.println("index value : " + indexvalue + " -> " + number1);
if (indexvalue == endPoint)
return;
indexvalue++;
fibonaccifunction(number2, number1+number2);
}
}

출력 :

Java의 피보나치 수열

설명:

  •  위에 작성된 프로그램 로직을 암시하지만 이 경우 Fibonacci 입력은 Fibonacci라는 함수를 사용하여 재귀적으로 처리되었습니다.

3. 피보나치 시리즈 프로그램(루프를 암시하지 않고 조건을 통해서만 달성됨)

코드:

public class Fibonacci_with_conditions
{
static int number2=1;
static int number1=0;
static int next=0;
public static  void Fibonacci_conditions( int number)
{
if(number<10)
{
if(number == 0)
{
System.out.print(" "+number);
number++;
Fibonacci_conditions (number);
}
else
if(number == 1)
{
System.out.print(" "+number);
number++;
Fibonacci_conditions(number);
}
else{
next=number1+number2;
System.out.print(" "+next);
number1=number2;
number2=next;
number++;
Fibonacci_conditions(number);
}
}
}
public static void main(String[] args)
{
Fibonacci_conditions(0);
}
}

출력:

Java의 피보나치 수열

설명:

  • Implying the program logic drafted above, but at this instance, the Fibonacci inputs are regulated only through necessary conditional statements.
  • According to the conditions, the swapping of the variables is necessarily carried out.

4. Fibonacci Series Program( Without Loops, the Concepts of Looping is Achieved using Nextint Method)

Code:

import java.util.*;
public class Fibonacci_series
{
public static void main(String[] args)
{
System.out.println("Input:");
int number= 10,value1=1,value2=0,value3=0;
num(number, value1, value2, value3);
}
public static void num(int number,int value1,int value2,int value3)
{
if(value1 <= number)
{
System.out.println(value1);
value3=value2;
value2=value1;
value1=value2+value3;
num(number,value1,value2,value3);
}
}
}

Output:

Java의 피보나치 수열

Explanation:

  • Implying the program logic drafted above, but at this instance, the Fibonacci inputs are handled recursively using a function named num, and the loop is carried out using the nextInt function.

Conclusion – Fibonacci Series in Java

These programs are implied to achieve the Fibonacci series for a given integer value.  A largely classified set of techniques are implied in the given list of examples. Techniques like an array-oriented approach and a condition-alone approach are very much peculiar.

위 내용은 Java의 피보나치 수열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바의 팩토리얼다음 기사:자바의 팩토리얼