귀환은 정말 어렵다!!!보고 많이 좋아졌어요.

4294 단어

귀속


귀속은 무엇입니까


프로그램에서 이른바 귀속이란 함수 자체가 직접 또는 간접적으로 자신을 호출하는 것이다.
  • 직접 자신을 호출
  • 간접적으로 자신을 호출
  • 귀환적으로 가장 중요한 것은 구조에서 벗어나는 것이다.튀어나와야 결과가 나오니까.

    이른바 귀속이란 화귀사상이다


    귀속의 호출, 귀속 함수를 쓰는 것은 결국 자신이라는 함수로 전환해야 한다.
    만약에 함수 f가 있다면 그것이 귀속함수라면 함수 체내의 문제는 f의 형식으로 전환되는 것이다.
    귀속 사상은 한 문제를 이미 해결된 문제로 바꾸어 실현하는 것이다
        function f() {
            ... f( ... ) ...
        }

    예: 1, 2, 3, 4, 5,...100
  • 우선 귀속 함수가 이미 작성되었다고 가정하고foo라고 가정한다.즉foo(100)는 1에서 100의 합을 구하는 것이다
  • 점차적인 관계를 찾다.n과 n-1, 또는 n-2 사이의 관계:foo(n)==n+foo(n-1)
  •     var res = foo( 100 );
        var res = foo( 99 ) + 100;
  • 추이 구조를 귀속체로 전환
  •     function foo( n ) {
            return n + foo( n - 1 );
        }
    *     100     99
    *     99     98
    * ...
    *   2     1
    *   1   1
    *  : foo( 1 )   1
  • 임계 조건을 귀속체에 추가
  •     function foo( n ) {
            if ( n == 1 ) return 1;
            return n + foo( n - 1 );
        }

    연습 나온 거 봐 주세요. 하나, 둘, 셋, 다섯, 일곱, 아홉...n항의 결과와 전 n항의 합.번호 0부터 시작
    n항의
  • 우선 귀속 함수를 이미 썼다고 가정하고 fn.그럼 n항은 fn(n)
  • 추이 관계:fn(n)=f(n-1)+2
  • 귀속체
  •     function fn( n ) {
            return fn( n-1 ) + 2;
        }
  • 임계조건 찾기
  • n -> n-1
  • n-1 구하기 -> n-2
  • ...
  • 1-> 0
  • 제0항을 구하면 1
  • 임계조건 가입
  •     function fn( n ) {
            if ( n == 0 ) return 1;
            return fn( n-1 ) + 2;
        }

    상위 n 및
  • 가설이 완성되면sum(n)는 전 n항과
  • 추이 관계: 전 n항과 제 n항 + 전 n-1항의 합
  • 귀속체 획득
  •     function sum( n ) {
            return fn( n ) + sum( n - 1 );
        } 
  • 임계조건 찾기
  • n = 1 결과 1
  • 귀속 함수 획득
  •     function sum( n ) {
            if ( n == 0 ) return 1;
            return fn( n ) + sum( n - 1 );
        } 

    2, 4, 6, 8, 10 제n항과 전 n항과
    n항
    function fn( n ) {
        if ( n == 0 ) return 2;
        return fn( n-1 ) + 2;
    }

    상위 n 및
    function sum( n ) {
        if ( n == 0 ) return 2;
        return sum( n - 1 ) + fn( n );
    }

    수열: 1, 1, 2, 4, 7, 11, 16,... n항, 전 n항과.
    n항
  • 이미 결과를 얻었다고 가정하면 fn, fn(10)이 10항
  • 이다.
  • 점차적인 관계를 찾다
  • 0, 1 => fn( 0 ) + 0 = fn( 1 )
  • 1, 2 => fn( 1 ) + 1 = fn( 2 )
  • 2, 3 => fn( 2 ) + 2 = fn( 3 )
  • ...
  • n-1, n => fn( n-1 ) + n - 1 = fn( n )

  • 귀속체도 알 수 있다. 임계 조건은 n=0=>1
  •     function fn( n ) {
            if ( n == 0 ) return 1;
            return fn( n-1 ) + n - 1;
        }

    만약 1부터 표시한다면 n항은
  • 이미 결과를 얻었다고 가정하면 fn, fn(10)이 10항
  • 이다.
  • 점차적인 관계를 찾다
  • 1, 2 => fn( 1 ) + 0 = fn( 2 )
  • 2, 3 => fn( 2 ) + 1 = fn( 3 )
  • 3, 4 => fn( 3 ) + 2 = fn( 4 )
  • ...
  • n-1, n => fn( n-1 ) + n - 2 = fn( n )

  • 임계조건 n==1=>1
  • 상위 n 및
        function sum( n ) {
            if ( n == 0 ) return 1;
            return sum( n - 1 ) + fn( n );
        }

    하면, 만약, 만약...
    0  1  2  3  4  5   6
    1, 1, 2, 4, 7, 11, 16,

    하면, 만약, 만약...
    1  2  3  4  5  6   7
    1, 1, 2, 4, 7, 11, 16,

    Fibonacci 수열: 1,1,2,3,5,8,13,21,34,55,89,...n항을 구합니다.
    점차적 관계 fn(n)=fn(n-1)+fn(n-2)
        function fib( n ) {
            if ( n == 0 || n == 1 ) return 1;
            return fib( n - 1 ) + fib( n - 2 );
        }

    계단이 뭔지도 모르고 책을 안 읽어봐서 어쩔 수 없어요.


    곱하기는 하나의 연산이고, 하나의 숫자의 곱하기는 1부터 이 숫자까지 누승하는 것을 나타낸다.예를 들면 3!표시1 * 2 * 3.5! 바로1 * 2 * 3 * 4 * 5.0에 곱셈이 없고, 곱셈은 1부터 시작한다.
    n의 계승을 구하다
        function foo ( n ) {
            if ( n == 1 ) return 1;
            return foo( n - 1 ) * n;
        }

    멱을 구하다


    멱을 구하는 것은 어느 한 사람을 몇 번 세어 보는 것이다
    2*22의 제곱, 2의 2차
    n의 m차원을 구하다
    최종적으로 함수 파워 (n, m) 를 얻어야 합니다.
    n의 m차는 m개의 n을 곱하면 n을 곱하면 (m-1)개의 n을 곱하는 것이다.
        function power ( n, m ) {
            if ( m == 1 ) return n;
            return power( n, m - 1 ) * n;
        }

    전재 대상:https://www.cnblogs.com/sunzhenbing/p/5746078.html

    좋은 웹페이지 즐겨찾기