Faktorialet for et tal er et vigtigt matematisk begreb. Du kan bruge den til at udføre permutationer og kombinationer, skrive eksponentielle og logaritmiske udtryk og beregne sandsynlighed.

Du bruger den til at finde antallet af forskellige måder, du kan designe et siddearrangement på, eller vælge t-shirts til din ferie til Maldiverne. Men hvordan kan du beregne fakultetet af et tal?

Hvad er faktoren ved et tal?

Faktorialet af et positivt tal er produktet af alle positive heltal mindre end eller lig med værdien af ​​selve tallet. Et tal efterfulgt af et udråbstegn(!) angiver et tals fakultet. Du repræsenterer fakultetet af fem som 5! og beregn det som:

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

En anden måde at visualisere det på er:

5! = 5 * 4! hvor 4! = 4 * 3!, 3! = 3 * 2! og så videre indtil du får 1! = 1 * 0! hvilket er 1.

Du vil bruge dette koncept til at bygge vores faktorielle program ved hjælp af et populært koncept kaldet rekursion.

Hvad er rekursion?

Rekursion er en proces, hvor en funktion kalder sig selv. En af de vigtigste fordele ved denne proces er, at den deler et større problem op i mindre bidder. Dette gør problemet lettere at løse.

instagram viewer

Du kan bruge rekursion til at løse passende problemer i tre nemme trin:

  1. Find grundsagen: Hvis en funktion altid kalder sig selv, vil processen være uendelig. For at forhindre dette i at ske, skal du definere et basistilfælde, der bliver det logiske stoppunkt for din funktion. I et faktorprogram skal du for eksempel stoppe beregningen ved nul. Dette bliver grundsagen for problemet.
  2. Find sammenhængen mellem problemstilling og delopgaver: Opdel det større problem i et underproblem. For eksempel er problemet at finde faktoren på fem. Antag, at du har svaret på faktor på fire, det vil sige 24. Hvordan får du fakultetet på fem ved at bruge 24? Ved at gange sig selv fem ind i det. Dette er forholdet mellem problemet og delproblemet.
  3. Generaliser relationen fundet i trin 2: Nu hvor du har relationen, generaliser den i form af n. Så fakultetet af et tal n er produktet af n og fakultetet af n-1.

Du kan bruge dette koncept til find summen af ​​n naturlige tal, beregn GCD, LCM, Fibonacci-serien, og kontroller primtal.

Pseudokode for den faktorielle funktion ved hjælp af rekursion

Dette er hvordan du bruger rekursion og skriv pseudokoden for at bygge dit program på ethvert sprog. Med forskellige sprog ændres syntaksen og udførelsen, men logikken forbliver intakt.

fungereFaktum(n)
Hvis n == 0 derefter // basiscase
Vend tilbage1
Vend tilbage n * Opkaldsfakta (n - 1) // generaliseret relation

Faktorprogram i C

C var det første platform-uafhængige programmeringssprog på højt niveau. Den har streng syntaks, skelner mellem store og små bogstaver og udfører kode med den hurtigste hastighed. Det er et proceduremæssigt programmeringssprog, og derfor erklærer du enhver funktion oven i vigtigste fungere. Sådan kan du bygge det faktorielle program ved hjælp af rekursion i C-sprog:

Du kan finde hele kildekoden til det faktorielle program ved hjælp af rekursion i C, Java og Python i denne GitHub-depot.

  1. Importer standardinput-output-header-filen til visning af output på skærmen.
    #omfatte <stdio.h>
  2. Definer funktion faktum og tag heltal n som et argument.
    intfaktum(int n){
  3. Skriv grundfaldet for funktionen ved hjælp af hvis erklæring og kontroller dens lighed vha ==. Hvis n er lig nul, returner en.
     hvis (n == 0)
    Vend tilbage1;
  4. Skriv den generaliserede ligning og returner produktet af n med et funktionskald af underproblem n-1.
    Vend tilbage n * faktum (n - 1);
    }
  5. Deklarer hovedfunktionen og initialiser en variabel af heltalstypen for at gemme det tal, hvis faktor du vil finde.
    intvigtigste(){
    int antal = 5;
  6. Vis tallets fakultet ved hjælp af printf() fungere. %d er decimalformatspecifikationen. Brug hver af formatspecifikationerne til at erstatte det med det tal, hvis faktor du vil finde, og få resultatet ved at kalde funktionen.
     printf("Faktor for %d er %d", num, kendsgerning (num));
    Vend tilbage0;
    }

Faktaprogram i Java

Java er et kompileret programmeringssprog og er platformsuafhængigt. Du gemmer al koden inde i en klasse og udførelsen begynder kl vigtigste fungere. Det skelner mellem store og små bogstaver og syntaksstreng. Koden er lidt længere, men hurtigere sammenlignet med Python. Sådan kan du bygge det faktorielle program ved hjælp af rekursion i Java:

  1. Definer hovedklassen.
    klasseHoved{
  2. Definer en statisk funktion med returtypen int, der accepterer en variabel n af heltalstypen. Du erklærede en statisk metode, da hovedmetoden i Java også erklæres som statisk. Derudover kan du ikke kalde en ikke-statisk metode fra en statisk instans.
    statiskintfaktum(int n){
  3. Skriv grundfaldet for funktionen ved hjælp af hvis erklæring og kontroller dens lighed vha ==. Hvis n er lig nul, returner en.
     hvis (n == 0)
    Vend tilbage1;
  4. Skriv den generaliserede ligning og returner produktet af n med et funktionskald af underproblem n-1.
    Vend tilbage n * faktum (n - 1);
    }
  5. Erklære hovedfunktionen i Java. Erklær adgangsmodifikatoren som offentlig, så det kan være tilgængeligt af alle de andre klasser og metoder. Du erklærer hovedfunktionen som statisk så compileren kan kalde den uden at instansiere klassen. Returtypen er ugyldig, og det accepterer argumenter af typen Snor. Gem nummeret, hvis factorial du vil finde.
    offentligstatiskugyldigvigtigste(String[] args){
    int antal = 5;
  6. Brug println() metode, et eksempel på PrintStream klasse, defineret i System klasse for at vise tallets fakultet.
     System.out.println("Faktoriel af " + num + " er " + fakta (antal));
    }
    }

Faktorprogram i Python

At skrive kode i Python er super nemt og sjovt. Da det er et fortolket platform-uafhængigt sprog, behøver du ikke at angive datatypen for variabler. Du slipper også for at skulle deklarere klasser og importere biblioteker for et så simpelt program. Legepladsen er klar til at du kan begynde at kode.

Syntaksen er lettere, med en lille kodelængde, men tager lidt længere tid at udføre end de andre sprog. Sådan kan du bygge det faktorielle program ved hjælp af rekursion i Python:

  1. Definer funktionsfaktum, der accepterer som argument n.
    deffaktum(n):
  2. Skriv grundfaldet for funktionen ved hjælp af hvis erklæring og kontroller dens lighed vha ==. Hvis n er lig nul, returner en.
     hvis n == 0:
    Vend tilbage1
  3. Skriv den generaliserede ligning og returner produktet af n med et funktionskald af underproblem n-1.
    Vend tilbage n * faktum (n-1)
  4. Gem nummeret, hvis factorial du vil finde, og vis det ved hjælp af udskriftserklæringen.
    antal = 5;
    Print("Faktoriel af", antal, "er", faktum (antal))

Der er mange anvendelser af rekursion

Rekursion er en effektiv måde at løse problemer på. Det er kernen i kunstig intelligens og kan bruges i den virkelige verden i puslespil såsom skak eller Sudoku.

Det er også en kraftfuld metode til at sortere datastrukturer såsom træ eller sorteringsalgoritmer såsom Hurtig sortering og Merge sort. Du kan også bruge rekursion i søgealgoritmer som binær søgning, matematiske udtryk som Fibonacci-serien og mere.