Rekursjon er en av de mest kraftfulle ideer i alle informatikk. Ofte referert til som en " splitt og hersk " tilnærming til å løse problemer , kan rekursjon du å løse et problem ved å løse en eller flere "mindre " versjoner av det samme problemet , og deretter gjøre en liten mengde ekstra eller kombinere arbeid . På denne måten kan mange meget komplekse problemer løses med utrolig elegante algoritmer. Du trenger
Microsoft Visual Basic
Vis flere instruksjoner
en
Opprett en ny Visual Basic funksjon. For eksempel: .
Funksjon gcd ( ByVal x As Integer , ByVal y som heltall) Som IntegerEnd Funksjon
Denne funksjonen vil beregne største felles divisor av to tall
2
Legg en test mellom funksjon og End Function linjer for å skille mellom "base case" og " rekursiv saken. " Base tilfeller er svært viktig i rekursive funksjoner - uten en, vil koden vanligvis føre til en uendelig loop og sannsynligvis krasje programmet. For eksempel , ser base case for " gcd "-funksjonen som dette : en p Hvis y = 0 Then ' Dette vil være grunnlaget caseElse ' Dette vil være den rekursive caseEnd Hvis
3
Legg en base case . Dette er den verdien som din funksjonen returnerer når den støter på et problem så liten at den ikke kan bryte det ned ytterligere . For " gcd "-funksjonen , ser det ut som dette : en
Return x
4
Legg en rekursiv sak . Når funksjonen gjentar seg , påkaller den seg med et enklere problem som vil hjelpe den løse større problem . I tilfellet av " gcd "-funksjonen , er den enklere problem velges slik at dens resultat faktisk er resultatet for hele komplekst problem. Det ser ut som dette : en
Return gcd ( y , x Mod y)
5
Test din funksjon. Det er alltid viktig å teste rekursive funksjoner ved hjelp av base case og noen rekursive tilfeller som input . Prøv å tenke på tester som kan være utenfor normen , slik som negative tall .