Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Hur man löser rekursion

    rekursion är ett kraftfullt koncept inom datavetenskap , men det kan vara svårt för nybörjare att förstå . Rekursion omfattar en funktion eller metod som upprepade gånger åberopar sig i ett annat sammanhang tills en " bas " kontext nås och returneras . Med andra ord , för att lösa ett problem , recontexualizes programmet det som ett något annorlunda problem . Vid genomförandet av en rekursiv algoritm , alltid överväga den enklaste formen av problemet och införa detta förenklade exempel som en " base case ", som alla andra versioner av problemet kommer att referera till . Instruktioner
    1

    Definiera en funktion sidhuvud - funktionens namn och dess ingångar . Till exempel kan en funktion som hittar ett visst Fibonacci nummer se ut enligt följande :

    fib ( int n ) { }

    Här beräknar funktionen " femtioelfte " Fibonacci nummer i sekvensen .
    2

    Skriv ner hur funktionen kommer att kallas generiskt . Till exempel när du ringer fib ( ) , kommer du att använda ett heltal som argument och registrera heltal som den beräknar :

    int resultat = fib ( x ) ,
    3

    Definiera " base case " i din rekursion problem . Det kan finnas flera basfallen . Som Fibonacci sekvensen kräver två siffror , behöver du två basfallen att implementera sin lösning

    if ( n == 0 ) return 0; . If ( n == 1 ) return 1 ;

    4

    Definiera rekursiva steget i din rekursion problem som en mindre , enklare version av samma problem , referera till åkallan exempel från steg 2 . I vårt exempel , är Fibonacci -sekvensen en matematisk sekvens där varje nummer i raden är summan av de två föregående nummer i sekvensen . Algoritmen för att hitta ett visst Fibonacci nummer måste därför åberopa sig två gånger , en gång för det föregående numret och en gång för numret innan det föregående numret :

    int resultat1 = fib ( n- 1 ) ; int result2 = fib ( n- 2 );

    retur resultat1 + result2 ;
    5

    Sätt funktionen sammanfogas t.ex. :

    fib ( int n ) { if ( n == 0 ) return 0; //base case 1else if ( n == 1 ) return 1 ; //base case 2 Review

    else { //rekursiv stepint resultat1 = fib ( n- 1 ) ; int result2 = fib (n- 2 );

    retur resultat1 + result2 ;}

    }

    strukturen för " basfallet " och " rekursiv steg" kommer att vara densamma för alla rekursiva funktioner , även om det kan finnas flera basfallen och långa rekursiva steg .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Vad betyder Out of Bounds Mean på en dator
    ·Hur göra Miljoner
    ·Hur man gör en textruta visa beroende på ComboBox i V…
    ·UML-diagram Explained
    ·Hur man gör en radmatning i XSLT
    ·MSI-paket Tutorial
    ·Lägga till heltal med Bit Skiften
    ·SQL Scripting Tutorial
    ·Hur konvertera UTF8 Texter
    ·Kan du döda en tråd utan att döda processen
    Utvalda artiklarna
    ·Hur till Öppen yenc filer
    ·Hur man sparar en textfil i PHP
    ·Kan du ha VS Färger för SQL
    ·C minnesläcka Verktyg
    ·Hur man kompilerar Java Under Anteckningar
    ·Hur man skickar kommandon till ett program inte är i f…
    ·SolidWorks API Verktyg
    ·Hur man gör Textruta visa beroende på en listruta i V…
    ·T - SQL Korrekt Funktioner
    ·Vad gör VBA Stativ för
    Copyright © Dator Kunskap http://www.dator.xyz