If you're seeing this message, it means we're having trouble loading external resources on our website.

Егер веб фильтрлерін қолдансаң, *.kastatic.org мен *.kasandbox.org домендері бұғатталмағанын тексер.

Негізгі бет

Рекурсивті факториал

n-ның оң мәндері үшін n, ! деп жазуымыз қажет біз бұрын айтқандай бір санның көбейтіндісін табу үшін біз сол санды кему ретінде бір-біріне көбейтеміз : n!-ге дейін төмендейтін сандардың көбейтіндісі ретінде жасадық : n, ! = n, dot, left parenthesis, n, minus, 1, right parenthesis, \@cdots, 2, dot, 1. Бірақ есте сақатңызt left parenthesis, n, minus, 1, right parenthesis, \@cdots, 2, dot, 1 осыны басқаша жаза аламыз left parenthesis, n, minus, 1, right parenthesis, !, сонда біз осылай жаза аламыз n, !, equals, n, dot, left parenthesis, n, minus, 1, right parenthesis, !.Біз жаңа ғана не істегенімізді көрдіңізбе ? Біз n, ! факторлардың бірі болып табылатын өнім ретіндеleft parenthesis, n, minus, 1, right parenthesis, ! деп жаздық . Біз айтқандай сіз n, ! ды left parenthesis, n, minus, 1, right parenthesis, ! және содан кейін ғана сіз left parenthesis, n, minus, 1, right parenthesis, ! -ді n -ға көбейтіп нәтижесін шығарасыз. Алдымен n, minus, 1 фактериял функциясын көбейтіп сіз n фактериял функциясын есептей аласыз. Осыны есептеу арқылы біз left parenthesis, n, minus, 1, right parenthesis, ! ды ішкі мәлесе деп атаймыз және осыны есептеп n! -ды таба аламыз.
Мысалды қарастырайық: 5! есептеу.
  • Сіз 5! осылай есептей аласыз 5, dot, 4, !.
  • Енді сіз осыны есептегенде ішкі мәселесін шешуіңіз қажет 4!, сіз 4, dot, 3! осылай есептей аласыз.
  • Енді сіз осыны есептегенде ішкі мәселесін шешуіңіз қажет 3!, сіз 3, dot, 2, ! осылай есептей аласыз.
  • Енді 2!, сіз 2, dot, 1, ! деп есептеңіз.
  • Сіз 1! осыны есептеңіз. Сіз айта аласыз 1! 1-ге тең деп, себебі бұл әр санның бір-біріне деген көбейтіндісі. Немесе сіз осыны формулаға сала аласыз 1, !, equals, 1, dot, 0, !. Формулаға салып көрейік.
  • Біз 0! -ді 1 -ге тең деп алайық.
  • Енді есептеңіз 1, !, equals, 1, dot, 0, !, equals, 1.
  • осылай есептеу арқылы 1, !, equals, 1, сіз бұны есептей аласыз 2, !, equals, 2, dot, 1, !, equals, 2.
  • осылай есептеу арқылы 2, !, equals, 2, сіз бұны есептей аласыз 3, !, equals, 3, dot, 2, !, equals, 6.
  • осылай есептеу арқылы 3, !, equals, 6, сіз бұны есептей аласыз 4, !, equals, 4, dot, 3, !, equals, 24.
  • Соңында, бұны есептегенде 4, !, equals, 24, сіз есеп шығаруды осылай аяқтай аласыз 5, !, equals, 5, dot, 4, !, equals, 120.
Енді бізде n, ! мәнін қалай есептеу керектігі туралы ойланудың басқа әдісі бар барлық теріс емес бүтін сандар үшін n:
  • Егер n, equals, 0 болса, онда n, equals, 1 деп жариялаңыз!.
    • Онда, n оң сан болуы керек. left parenthesis, n, minus, 1, right parenthesis, ! есептеуді шешіңіз , бұл нәтижені n көбейтіңіз және n, ! жариялаңыз, осы өнімнің нәтижесіне тең.
Біз n, ! есептеген кезде сондықтан біз жауапты бірден білетін бірінші жағдайды негізгі жағдай деп атаймыз және екінші функцияны есептеуіміз керек, бірақ басқа мәні бар, рекурсивті жағдай деп атаймыз.

Бұл мазмұн ынтымақтастықтың нәтижесі Дартмут компьютерлік ғылымы профессорлар [Томас Кормен](http://www.cs.dartmouth.edu / ~thc/) және [Дэвин Бэлком](http://www.cs.dartmouth.edu / ~devin/), сонымен қатар Хан академиясының компьютерлік оқу бағдарламасы бойынша тобы. Мазмұн лицензияланған CC-BY-NC-SA.