Faktoriál čísla je dôležitý matematický pojem. Môžete ho použiť na vykonávanie permutácií a kombinácií, písanie exponenciálnych a logaritmických výrazov a výpočet pravdepodobnosti.

Pomocou neho nájdete množstvo rôznych spôsobov, ako si môžete navrhnúť usporiadanie sedadiel alebo si vybrať tričká na dovolenku na Maldivy. Ale ako môžete vypočítať faktoriál čísla?

Čo je to faktoriál čísla?

Faktoriál kladného čísla je súčinom všetkých kladných celých čísel menších alebo rovných hodnote samotného čísla. Číslo, za ktorým nasleduje výkričník(!), označuje faktoriál čísla. Reprezentujete faktoriál piatich ako 5! a vypočítajte to ako:

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

Ďalší spôsob, ako si to predstaviť, je:

5! = 5 * 4! kde 4! = 4 * 3!, 3! = 3 * 2! a tak ďalej, kým nedostanete 1! = 1 * 0! čo je 1.

Tento koncept použijete na zostavenie nášho faktoriálneho programu pomocou populárneho konceptu nazývaného rekurzia.

Čo je rekurzia?

Rekurzia je proces, v ktorom funkcia volá samu seba. Jednou z hlavných výhod tohto procesu je, že rozdeľuje väčší problém na menšie kúsky. To uľahčuje riešenie problému.

instagram viewer

Rekurziu môžete použiť na vyriešenie príslušných problémov v troch jednoduchých krokoch:

  1. Nájdite základný prípad: Ak funkcia vždy volá sama seba, proces bude nekonečný. Aby ste tomu zabránili, definujte základný prípad, ktorý sa stane logickým bodom zastavenia vašej funkcie. Napríklad vo faktoriálnom programe zastavte výpočet na nule. Toto sa stáva základným prípadom problému.
  2. Nájdite vzťah medzi problémom a podproblémami: Rozdeľte väčší problém na podproblém. Problémom je napríklad nájsť faktoriál päťky. Predpokladajme, že máte odpoveď faktoriálu štyri, teda 24. Ako získate faktoriál päť pomocou 24? Vynásobením päťky do nej. Toto je vzťah medzi problémom a podproblémom.
  3. Zovšeobecnite vzťah nájdený v kroku 2: Teraz, keď máte vzťah, zovšeobecnite ho z hľadiska n. Takže faktoriál čísla n je súčinom n a faktoriálom n-1.

Tento koncept môžete použiť nájdite súčet n prirodzených čísel, vypočítajte GCD, LCM, Fibonacciho sériu a skontrolujte prvočísla.

Pseudokód pre faktoriálnu funkciu pomocou rekurzie

Toto je ako používate rekurziu a napíšte pseudo kód na zostavenie vášho programu v akomkoľvek jazyku. S rôznymi jazykmi sa syntax a vykonávanie mení, ale logika zostáva nedotknutá.

funkciuFakt(n)
Ak n == 0 potom // základný prípad
Návrat1
Návrat n * Faktor hovoru (n - 1) // zovšeobecnený vzťah

Faktorový program v C

C bol prvý programovací jazyk na vysokej úrovni, nezávislý na platforme. Má prísnu syntax, rozlišuje malé a veľké písmená a vykonáva kód najrýchlejšou rýchlosťou. Je to procedurálny programovací jazyk, a preto deklarujete akúkoľvek funkciu navrchu Hlavná funkciu. Tu je návod, ako môžete zostaviť faktoriálny program pomocou rekurzie v jazyku C:

Celý zdrojový kód faktoriálneho programu pomocou rekurzie v C, Java a Python nájdete v tomto úložisko GitHub.

  1. Importujte súbor hlavičky štandardného vstupu a výstupu na zobrazenie výstupu na obrazovku.
    #include <stdio.h>
  2. Definujte funkciu skutočnosť a vezmite celé číslo n ako argument.
    intskutočnosť(int n){
  3. Napíšte základný prípad funkcie pomocou ak a skontrolujte jeho rovnosť pomocou ==. Ak sa n rovná nule, vráťte jednotku.
     ak (n == 0)
    vrátiť1;
  4. Napíšte zovšeobecnenú rovnicu a vráťte súčin n s volaním funkcie podproblém n-1.
    vrátiť n * skutočnosť (n - 1);
    }
  5. Deklarujte hlavnú funkciu a inicializujte premennú celočíselného typu na uloženie čísla, ktorého faktoriál chcete nájsť.
    intHlavná(){
    int číslo = 5;
  6. Zobrazte faktoriál čísla pomocou printf() funkciu. %d je špecifikátor desiatkového formátu. Pomocou každého zo špecifikátorov formátu ho nahraďte číslom, ktorého faktoriál chcete nájsť, a získajte výsledok volaním funkcie.
     printf("Faktor %d je %d", num, fakt (num));
    vrátiť0;
    }

Faktorový program v Jave

Java je kompilovaný programovací jazyk a je nezávislý od platformy. Celý kód uložíte do a trieda a exekúcia začína od Hlavná funkciu. Rozlišuje veľké a malé písmená a syntax je striktná. Kód je o niečo dlhší, ale rýchlejší v porovnaní s Pythonom. Tu je návod, ako môžete zostaviť faktoriálny program pomocou rekurzie v jazyku Java:

  1. Definujte hlavnú triedu.
    triedaHlavná{
  2. Definujte statickú funkciu s návratovým typom int, ktorá akceptuje premennú n celočíselného typu. Vyhlásili ste statickú metódu ako hlavnú metódu v jazyku Java je tiež deklarovaná ako statická. Okrem toho nemôžete volať nestatickú metódu zo statickej inštancie.
    statickéintskutočnosť(int n){
  3. Napíšte základný prípad funkcie pomocou ak a skontrolujte jeho rovnosť pomocou ==. Ak sa n rovná nule, vráťte jednotku.
     ak (n == 0)
    vrátiť1;
  4. Napíšte zovšeobecnenú rovnicu a vráťte súčin n s volaním funkcie podproblém n-1.
    vrátiť n * skutočnosť (n - 1);
    }
  5. Deklarujte hlavnú funkciu v Jave. Deklarujte modifikátor prístupu ako verejnosti, takže môže byť prístupný pre všetky ostatné triedy a metódy. Deklarujete hlavnú funkciu ako statické aby ho kompilátor mohol vyvolať bez vytvárania inštancií triedy. Návratový typ je prázdno, a prijíma argumenty typu Reťazec. Uložte číslo, ktorého faktoriál chcete nájsť.
    verejnostistatickéneplatnéHlavná(Reťazec[] argumentov){
    int číslo = 5;
  6. Použi println() metóda, inštancia metódy PrintStream trieda, definovaná v Systém triedy na zobrazenie faktoriálu čísla.
     System.out.println("Faktor z " + číslo + " je " + fakt (num));
    }
    }

Faktorový program v Pythone

Písanie kódu v Pythone je super jednoduché a zábavné. Keďže ide o interpretovaný jazyk nezávislý od platformy, nemusíte deklarovať typ údajov premenných. Tiež sa vyhnete nutnosti deklarovať triedy a importovať knižnice pre taký jednoduchý program. Ihrisko je pripravené, aby ste mohli začať kódovať.

Syntax je jednoduchšia, s malou dĺžkou kódu, ale spustenie trvá o niečo viac času ako v iných jazykoch. Tu je návod, ako môžete zostaviť faktoriálny program pomocou rekurzie v Pythone:

  1. Definujte fakt funkcie, ktorý akceptuje ako argument n.
    defskutočnosť(n):
  2. Napíšte základný prípad funkcie pomocou ak a skontrolujte jeho rovnosť pomocou ==. Ak sa n rovná nule, vráťte jednotku.
     ak n == 0:
    vrátiť1
  3. Napíšte zovšeobecnenú rovnicu a vráťte súčin n s volaním funkcie podproblém n-1.
    vrátiť n * skutočnosť (č-1)
  4. Uložte číslo, ktorého faktoriál chcete nájsť, a zobrazte ho pomocou tlačového výpisu.
    číslo = 5;
    vytlačiť ("Faktor z", číslo, "je", fakt (num))

Existuje mnoho aplikácií rekurzie

Rekurzia je efektívny spôsob riešenia problémov. Je jadrom umelej inteligencie a má skutočné využitie v logických hrách, ako sú šach alebo sudoku.

Je to tiež výkonná metóda na triedenie dátových štruktúr, ako je strom alebo triediace algoritmy, ako je rýchle triedenie a triedenie zlúčením. Rekurziu môžete použiť aj pri vyhľadávacích algoritmoch, ako je binárne vyhľadávanie, matematické výrazy, ako napríklad Fibonacciho séria a ďalšie.