Java 사용 귀속 해결 알고리즘 문제의 실례 설명

해석: 프로그램 호출 자체의 프로그래밍 기교를 귀속이라고 한다.
프로그램 호출 자체의 프로그래밍 기교를 귀속 (recursion) 이라고 부른다.귀속은 하나의 알고리즘으로 프로그램 설계 언어에서 광범위하게 응용된다.하나의 과정이나 함수는 그 정의나 설명에서 직접적이거나 간접적으로 자신을 호출하는 방법이 있다. 이것은 통상적으로 하나의 대형 복잡한 문제를 원문제와 비슷한 규모가 비교적 작은 문제로 층층이 바꾸어 해답을 구한다. 귀속 전략은 소량의 프로그램만 있으면 해답 과정에 필요한 여러 차례의 중복 계산을 묘사할 수 있고 프로그램의 코드량을 크게 줄일 수 있다.귀속의 능력은 유한한 문장으로 대상의 무한 집합을 정의하는 데 있다.
귀속의 세 가지 조건:
1. 경계 조건
2. 전진 단계로 귀속
3. 반복 반환 세그먼트
경계 조건이 충족되지 않을 때 차례로 전진한다.경계 조건이 충족되면 귀환한다.
다음은 두 가지 예제 프로그램을 통해 설명합니다.
1. 자바 코드를 사용하여 5의 계승을 구한다.(5의 곱하기 = 5*4*3*2*1)

package org.wxp.recursion; 
/** 
 *  5 (result = 5*4*3*2*1) 
 * @author Champion.Wong 
 */ 
public class Test01 { 
 public static void main(String[] args) { 
  System.out.println(f(5)); 
 } 
  
 public static int f(int n) { 
  if (1 == n) 
   return 1; 
  else 
   return n*(n-1); 
 } 
} 
이 문제는 다음과 같은 세 가지 기준으로 분류됩니다.
(1) 경계 조건: 계승, 마지막 수, 즉 1까지 곱하면 1을 되돌려주고 프로그램이 끝까지 실행한다.
(2) 귀속 전진 단계: 현재의 매개 변수가 1과 같지 않을 때 자신을 계속 호출한다.
(3) 귀환 세그먼트: 최대 수부터 곱하기, 현재 매개 변수가 5이면 5*4, 즉 5*(5-1), 즉 n*(n-1)
2. Java 코드를 사용하여 수열을 구합니다: 1, 2, 3, 5, 8...40위

package org.wxp.recursion;  
/** 
 *  :1,1,2,3,5,8...... 40  
 */ 
public class Test_02_Fibonacci { 
  public static void main(String[] args) { 
    System.out.println(f(6)); 
  } 
   
  public static int f(int n ) { 
    if (1== n || 2 == n)  
      return 1; 
    else 
      return f(n-1) + f(n-2); 
  } 
} 

3. 문제 설명: Fibonacci 수열의 10번째 위치의 값을 구해볼까요?(피보나치 수열(Fibonacci Sequence), 황금분할수열이라고도 하는데 이런 수열을 가리킨다. 1, 2, 3, 5, 8, 13, 21...... 수학적으로 피보나치 수열은 다음과 같이 귀속되는 방법으로 정의된다. F0=0, F1=1, Fn=F(n-1)+F(n>=2, n∈N*)
프로그램 목록:

/** 
 *<p>Title:Java </p> 
 *<p>Description: Fibonacci 5 </p> 
 *<p>Filename:Fibonacci.java</p> 
 */ 
public class Fibonacci 
{ 
 /** 
 * : Fibonacci  
 * :int n 
 * :int 
 */ 
 public static int fun(int n) 
 { 
  if(1==n || 2==n) 
  { 
  return 1; 
  } 
  else  
  { 
  return (fun(n-1) + fun(n-2)); 
  } 
 } 
  
 /** 
 * :  
 * :String[] args 
 * :void 
 */ 
 public static void main(String[] args) 
 { 
 System.out.println(fun(10)); 
 } 
} 

실행 결과는 다음과 같습니다.
55

좋은 웹페이지 즐겨찾기