Факторијел броја је важан математички концепт. Можете га користити за извођење пермутација и комбинација, писање експоненцијалних и логаритамских израза и израчунавање вероватноће.

Користите га да пронађете број различитих начина на које можете дизајнирати распоред седења или одабрати мајице за ваш одмор на Малдивима. Али како можете израчунати факторијел броја?

Шта је факторијал броја?

Факторијел позитивног броја је производ свих позитивних целих бројева који су мањи или једнаки вредности самог броја. Број иза којег следи знак узвика(!) означава факторијел броја. Факторијел од пет представљате као 5! и израчунај га као:

5! = 5 * 4 * 3 * 2 * 1 = 120

Други начин да се то визуализује је:

5! = 5 * 4! где 4! = 4 * 3!, 3! = 3 * 2! и тако даље док не добијете 1! = 1 * 0! што је 1.

Овај концепт ћете користити да направите наш факторски програм користећи популарни концепт који се зове рекурзија.

Шта је рекурзија?

Рекурзија је процес у коме функција позива саму себе. Једна од главних предности овог процеса је што већи проблем разбија на мање делове. Ово олакшава решавање проблема.

Можете користити рекурзију да решите одговарајуће проблеме у три једноставна корака:

  1. Пронађите основни случај: Ако функција увек позива саму себе, процес ће бити бесконачан. Да бисте спречили да се то догоди, дефинишите основни случај који постаје логична тачка заустављања ваше функције. На пример, у факторском програму зауставите прорачун на нули. Ово постаје основни случај проблема.
  2. Пронађите везу између проблема и подпроблема: Раздвојите већи проблем на подпроблем. На пример, проблем је пронаћи факторијел од пет. Претпоставимо да имате одговор факторијела четири, то је 24. Како ћете добити факторијел од пет користећи 24? Помножећи само пет у њега. Ово је однос између проблема и подпроблема.
  3. Генерализујте релацију пронађену у кораку 2: Сада када имате релацију, генерализујте је у смислу н. Дакле, факторијел броја н је производ од н и факторијела од н-1.

Овај концепт можете користити за наћи збир н природних бројева, израчунајте ГЦД, ЛЦМ, Фибоначијев низ и проверите просте бројеве.

Псеудо код за факторску функцију помоћу рекурзије

Ово је како користите рекурзију и напишите псеудо код да бисте направили свој програм на било ком језику. Са различитим језицима, синтакса и извршење се мењају, али логика остаје нетакнута.

функцијаЧињеница(н)
Ако је н == 0 онда // основни случај
Повратак1
Повратак н * Чињеница позива (н - 1) // генерализовани однос

Факторски програм у Ц

Ц је био први програмски језик високог нивоа, независан од платформе. Има строгу синтаксу, разликује велика и мала слова и извршава код најбржом брзином. То је процедурални програмски језик и стога декларишете било коју функцију на врху главни функција. Ево како можете да направите факторски програм користећи рекурзију у језику Ц:

Можете пронаћи цео изворни код факторског програма користећи рекурзију у Ц, Јава и Питхон у овом ГитХуб спремиште.

  1. Увезите стандардни улазни излазни фајл заглавља за приказивање излаза на екрану.
    #инцлуде <стдио.х>
  2. Дефинишите функцију чињеница и узми цео број н као аргумент.
    интчињеница(инт н){
  3. Напишите основни случај функције користећи ако исказ и провери његову једнакост помоћу ==. Ако је н једнако нули, вратите један.
     ако (н == 0)
    повратак1;
  4. Напишите генерализовану једначину и вратите производ од н са позивом функције подпроблема н-1.
    повратак н * чињеница (н - 1);
    }
  5. Декларисајте главну функцију и иницијализујте променљиву целобројног типа да бисте сачували број чији факторијел желите да пронађете.
    интглавни(){
    инт нум = 5;
  6. Прикажи факторијел броја користећи принтф() функција. је спецификација децималног формата. Користите сваки од спецификација формата да га замените бројем чији факторијел желите да пронађете и добијете резултат позивањем функције.
     принтф("Факторијал од %д је %д", број, чињеница (број));
    повратак0;
    }

Факторски програм у Јави

Јава је компајлирани програмски језик и независан је од платформе. Сав код чувате у а класа а извршење почиње од главни функција. Осетљив је на велика и мала слова и строга је синтакса. Код је мало дужи, али бржи у поређењу са Питхон-ом. Ево како можете да направите факторски програм користећи рекурзију у Јави:

  1. Дефинишите главну класу.
    класаГлавни{
  2. Дефинишите статичку функцију са повратним типом инт која прихвата променљиву н целобројног типа. Декларисали сте статички метод јер је главни метод у Јави такође декларисан као статички. Поред тога, не можете позвати нестатичку методу из статичне инстанце.
    статичнеинтчињеница(инт н){
  3. Напишите основни случај функције користећи ако исказ и провери његову једнакост помоћу ==. Ако је н једнако нули, вратите један.
     ако (н == 0)
    повратак1;
  4. Напишите генерализовану једначину и вратите производ од н са позивом функције подпроблема н-1.
    повратак н * чињеница (н - 1);
    }
  5. Декларисајте главну функцију у Јави. Објавите модификатор приступа као јавности, тако да може бити доступан свим другим класама и методама. Главну функцију декларишете као статичне тако да компајлер може да га позове без инстанцирања класе. Тип повратка је празнина, и прихвата аргументе типа Низ. Сачувајте број чији факторијел желите да пронађете.
    јавностистатичнепразнинаглавни(Стринг[] аргументи){
    инт нум = 5;
  6. Користити принтлн() метод, пример ПринтСтреам класа, дефинисана у Систем класе за приказ факторијела броја.
     Систем.оут.принтлн("Факторски од " + нум + " је " + чињеница (број));
    }
    }

Факторски програм у Питхон-у

Писање кода у Питхон-у је супер лако и забавно. Пошто је то интерпретирани језик независан од платформе, не морате да декларишете тип података променљивих. Такође избегавате да декларишете класе и увозите библиотеке за тако једноставан програм. Игралиште је спремно за почетак кодирања.

Синтакса је лакша, са малом дужином кода, али је потребно мало више времена да се изврши од других језика. Ево како можете да направите факторски програм користећи рекурзију у Питхон-у:

  1. Дефинисати чињеницу функције која прихвата као аргумент н.
    дефчињеница(н):
  2. Напишите основни случај функције користећи ако исказ и провери његову једнакост помоћу ==. Ако је н једнако нули, вратите један.
     ако је н == 0:
    повратак1
  3. Напишите генерализовану једначину и вратите производ од н са позивом функције подпроблема н-1.
    повратак н * чињеница (н-1)
  4. Сачувајте број чији факторијел желите да пронађете и прикажите га помоћу изјаве за штампање.
    број = 5;
    штампа ("Факторски од", број, "је", чињеница (број))

Постоји много примена рекурзије

Рекурзија је ефикасан начин решавања проблема. То је суштина вештачке интелигенције и користи се у стварном свету у слагалицама као што су шах или судоку.

То је такође моћан метод за сортирање структура података као што је дрво или алгоритми за сортирање као што су брзо сортирање и сортирање спајањем. Такође можете да користите рекурзију у алгоритмима претраживања као што је бинарна претрага, математички изрази као што је Фибоначијев низ и још много тога.