귀속 알고리즘에 대한 이해를 간단히 말하다.

5055 단어
반복:
이른바 귀환이란 전달도 있고 회귀도 있다. 전달과 회귀라기보다는 초학이 일종의'순서대로 전진'과'규칙적인 구속'이라는 것을 이해하는 것이 낫다.
왜 이렇게 말합니까? 귀속 알고리즘은 순환보다 코드 구조에 있어서 개인이 생각하는 것보다 더욱 간결하고 뚜렷하며 이해하기 쉽기 때문에 귀속은 질서정연한 규칙을 중시하기 때문에 모든 프로그램이 시작되기 전에 우리는 프로그램을 순서대로 전진시키는 규칙을 찾을 수 있습니다.또한 전체 과정에서 이 규칙으로 전달되고 있지만 귀속 알고리즘도 큰 단점이 있어 메모리 공간이 부족하여 메모리 넘침을 형성할 수 있다.그래서 이런 단점을 감안하여'규칙적 제약'을 도입한다. 매번 알고리즘의 시작 전에 알고리즘에 대해 규칙적 제약을 한다. 이런 제약은'귀기'로 이해할 수 있다.바로 이 귀환 기일에 이르러 부득이하게 하였다.
 
eg:1 + 2 + 3 + 4 +... + 100의 값을 계산합니다.
function fn(n){
if(n==1)return 1;       //  
return n+fn(n-1);       //  
}
console.log(fn(100));

eg:2 n과 1/n을 계산해!곱하기
1. n!
function
fn(n){ if(n==1)return 1; // return n*fn(n-1); // } console.log(fn(5));

2. 1/n!
function fn(n){
if(n==1)return 1;         //  
return 1/n*fn(n-1);         //  
}
console.log(fn(5));

 
eg:3 피폴라치 수열 (n번째 수의 수치 구하기)
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987……
function fn(n){
if(n==1||n=2)return 1;        //  
return fn(n-1)+fn(n-2);         //  
}
console.log(fn(8));

eg:4 함수를 작성하고 n을 짝수로 입력할 때 호출 함수는 1/2+1/4+...+1/n, n을 홀수로 입력할 때 함수를 호출하여/1+1/3+...+1/n
function fn(n){
if(n%2==0){
if(n<=2)return 1/2;       //  
return 1/n+fn(n-2);       //  
}
if(n%2!=0){
if(n==1)return 1;         //  
return 1/n+fn(n-2);
}
}
console.log(fn(4));

eg:5 제발 1!1/2!+1/3!+...+1/n!(귀속과 순환의 결합)
   // function fn(n) {
    //     if (n == 1) return 1;       //  
    //     return 1 / n * fn(n - 1);   //  
    // }
                                        // console.log(fn(5));



// function fn1(n) { // var sum = 0; // for (i = 1; i <= n; i++) { // sum += fn(i); // } // return sum; // } // console.log(fn1(5))

 
 
 
 

좋은 웹페이지 즐겨찾기