Faktorijel broja je važan matematički koncept. Možete ga koristiti za izvođenje permutacija i kombinacija, pisanje eksponencijalnih i logaritamskih izraza i izračunavanje vjerojatnosti.

Pomoću nje možete pronaći različite načine na koje možete dizajnirati raspored sjedenja ili odabrati majice kratkih rukava za odmor na Maldivima. Ali kako možete izračunati faktorijel broja?

Što je faktorijel broja?

Faktorijel pozitivnog broja umnožak je svih pozitivnih cijelih brojeva manjih ili jednakih vrijednosti samog broja. Broj iza kojeg slijedi uskličnik(!) označava faktorijel broja. Predstavljate faktorijel pet kao 5! i izračunajte ga kao:

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

Drugi način vizualizacije je:

5! = 5 * 4! gdje 4! = 4 * 3!, 3! = 3 * 2! i tako dok ne dobijete 1! = 1 * 0! što je 1.

Koristit ćete ovaj koncept za izgradnju našeg faktorijelnog programa pomoću popularnog koncepta koji se zove rekurzija.

Što je rekurzija?

Rekurzija je proces u kojem funkcija poziva samu sebe. Jedna od glavnih prednosti ovog procesa je ta što veći problem rastavlja na manje dijelove. To olakšava rješavanje problema.

instagram viewer

Rekurziju možete koristiti za rješavanje odgovarajućih problema u tri jednostavna koraka:

  1. Pronađite osnovni slučaj: Ako funkcija uvijek poziva samu sebe, proces će biti beskonačan. Kako biste spriječili da se to dogodi, definirajte osnovni slučaj koji postaje logična točka zaustavljanja vaše funkcije. Na primjer, u faktorijelnom programu zaustavite izračun na nuli. Ovo postaje osnovni slučaj problema.
  2. Pronađite odnos između problema i podproblema: Razdvojite veći problem na podproblem. Na primjer, problem je pronaći faktorijel od pet. Pretpostavimo da imate odgovor faktorijel četiri, to jest 24. Kako ćete dobiti faktorijel pet koristeći 24? Množenjem sebe pet u njega. To je odnos između problema i podproblema.
  3. Generalizirajte odnos pronađen u koraku 2: Sada kada imate relaciju, generalizirajte je u smislu n. Dakle, faktorijel broja n je umnožak broja n i faktorijela broja n-1.

Ovaj koncept možete koristiti za naći zbroj n prirodnih brojeva, izračunati GCD, LCM, Fibonaccijev red i provjeriti proste brojeve.

Pseudo kod za faktorijelnu funkciju korištenjem rekurzije

Ovo je kako koristite rekurziju i napišite pseudo kod za izgradnju vašeg programa na bilo kojem jeziku. S različitim jezicima, sintaksa i izvođenje se mijenjaju, ali logika ostaje netaknuta.

funkcijaČinjenica(n)
Ako je n == 0 zatim // osnovni slučaj
Povratak1
Povratak n * Činjenica poziva (n - 1) // generalizirani odnos

Faktorski program u C

C je bio prvi programski jezik visoke razine, neovisan o platformi. Ima strogu sintaksu, razlikuje velika i mala slova i izvršava kod najvećom brzinom. To je proceduralni programski jezik i stoga deklarirate bilo koju funkciju iznad glavni funkcija. Evo kako možete izgraditi faktorski program koristeći rekurziju u C jeziku:

Cijeli izvorni kod faktorijelnog programa koji koristi rekurziju u C-u, Javi i Pythonu možete pronaći u ovom GitHub spremište.

  1. Uvezite datoteku standardnog ulaznog izlaznog zaglavlja za prikaz izlaza na ekranu.
    #uključi <stdio.h>
  2. Definirajte funkciju činjenica i uzeti cijeli broj n kao argument.
    intčinjenica(int n){
  3. Napišite osnovni slučaj funkcije pomoću ako iskaz i provjerite njegovu jednakost pomoću ==. Ako je n jednako nuli, vratite jedan.
     ako (n == 0)
    povratak1;
  4. Napišite generaliziranu jednadžbu i vratite umnožak n s pozivom funkcije podproblema n-1.
    povratak n * činjenica (n - 1);
    }
  5. Deklarirajte glavnu funkciju i inicijalizirajte varijablu cjelobrojnog tipa za pohranu broja čiji faktorijel želite pronaći.
    intglavni(){
    int broj = 5;
  6. Prikažite faktorijel broja pomoću printf() funkcija. %d je specifikator decimalnog formata. Koristite svaki specifikator formata da biste ga zamijenili brojem čiji faktorijel želite pronaći i dobili rezultat pozivom funkcije.
     printf("Faktorijel od %d je %d", broj, činjenica (broj));
    povratak0;
    }

Faktorski program u Javi

Java je kompajlirani programski jezik i neovisan je o platformi. Sav kod pohranjujete unutar a razreda a izvršenje počinje od glavni funkcija. Osjetljiv je na velika i mala slova i strogu sintaksu. Kod je malo duži, ali brži u usporedbi s Pythonom. Evo kako možete izgraditi faktorski program koristeći rekurziju u Javi:

  1. Definirajte glavnu klasu.
    razredaGlavni{
  2. Definirajte statičku funkciju s tipom povrata int koja prihvaća varijablu n cjelobrojnog tipa. Deklarirali ste statičku metodu kao glavnu metodu u Javi koja je također deklarirana kao statična. Osim toga, ne možete pozvati nestatičku metodu iz statičke instance.
    statičkiintčinjenica(int n){
  3. Napišite osnovni slučaj funkcije pomoću ako iskaz i provjerite njegovu jednakost pomoću ==. Ako je n jednako nuli, vratite jedan.
     ako (n == 0)
    povratak1;
  4. Napišite generaliziranu jednadžbu i vratite umnožak n s pozivom funkcije podproblema n-1.
    povratak n * činjenica (n - 1);
    }
  5. Deklarirajte glavnu funkciju u Javi. Deklarirajte modifikator pristupa kao javnost, tako da može biti dostupan svim drugim klasama i metodama. Glavnu funkciju deklarirate kao statički tako da ga prevoditelj može pozvati bez instanciranja klase. Vrsta povrata je poništiti, i prihvaća argumente tipa Niz. Pohranite broj čiji faktorijel želite pronaći.
    javnoststatičkiponištitiglavni(String[] argumenti){
    int broj = 5;
  6. Koristiti println() metoda, primjerak PrintStream razred, definiran u Sustav klasa za prikaz faktorijela broja.
     System.out.println("Faktorijel od " + broj + " je " + činjenica (broj));
    }
    }

Faktorski program u Pythonu

Pisanje koda u Pythonu je super jednostavno i zabavno. Budući da je to interpretirani jezik neovisan o platformi, ne morate deklarirati vrstu podataka varijabli. Također izbjegavate deklariranje klasa i uvoz biblioteka za tako jednostavan program. Igralište je spremno za početak kodiranja.

Sintaksa je lakša, s malom duljinom koda, ali je potrebno malo više vremena za izvođenje od ostalih jezika. Evo kako možete izgraditi faktorski program koristeći rekurziju u Pythonu:

  1. Definirajte funkciju fact koja prihvaća kao argument n.
    defčinjenica(n):
  2. Napišite osnovni slučaj funkcije pomoću ako iskaz i provjerite njegovu jednakost pomoću ==. Ako je n jednako nuli, vratite jedan.
     ako je n == 0:
    povratak1
  3. Napišite generaliziranu jednadžbu i vratite umnožak n s pozivom funkcije podproblema n-1.
    povratak n * činjenica (n-1)
  4. Pohranite broj čiji faktorijel želite pronaći i prikažite ga pomoću izjave za ispis.
    broj = 5;
    ispis("Faktorijel od", broj, "je", činjenica (broj))

Postoji mnogo primjena rekurzije

Rekurzija je učinkovit način rješavanja problema. To je srž umjetne inteligencije i koristi se u stvarnom svijetu u igrama slagalica kao što su šah ili sudoku.

To je također moćna metoda za sortiranje struktura podataka kao što je stablo ili algoritama sortiranja kao što su brzo sortiranje i sortiranje spajanjem. Također možete koristiti rekurziju u algoritmima pretraživanja kao što je binarno pretraživanje, matematički izrazi kao što je Fibonaccijev niz itd.