“Conocimientos Programación>Lenguajes De Programación

¿Cómo resolver recursividad

2011/6/23
recursividad es un concepto poderoso en el campo de la informática, pero puede ser difícil para los principiantes a comprender . Recursión implica una función o método que invocar repetidamente en sí en un contexto diferente hasta que se alcanza y se devuelve un contexto " de base " . En otras palabras , para resolver un problema , el programa recontexualizes como un problema ligeramente diferente . Cuando se implementa un algoritmo recursivo , considerar siempre la forma más simple del problema y establecer este ejemplo simplificado, " caso base ", que todas las demás versiones del problema harán referencia . Instrucciones
1

Defina la cabecera de una función - el nombre de la función y sus insumos. Por ejemplo , una función que encuentra un número Fibonacci particular podría tener el siguiente aspecto :

fib ( int n ) { }

Aquí, la función calcula el " enésimo " número Fibonacci en la secuencia .
2

Anote cómo se llama a la función genérica . Por ejemplo , cuando se llama a fib ( ) , se utiliza un entero como argumento y registrar el número entero que se calcula :

int resultado = fib ( x);
3

Definir el "caso base" de su problema de recursividad. Puede haber múltiples casos de base. Como la secuencia de Fibonacci requiere dos números , tendrá dos casos base para implementar su solución

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

4

Definir el paso recursivo de su problema de recursión como una versión más pequeña , más simple del mismo problema , haciendo referencia al ejemplo de invocación de la Etapa 2 . En nuestro ejemplo , la secuencia de Fibonacci es una secuencia matemática donde cada número en la línea es la suma de los dos números anteriores en la secuencia . Por tanto, el algoritmo para encontrar un número Fibonacci particular debe invocarse a sí mismo dos veces, una para el número anterior y una vez para el número antes de que el número anterior :

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

regreso resultado1 + result2 ;
5

Poner la función en conjunto, por ejemplo :

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

else { //recursiva stepint resultado1 = fib ( n- 1 ) ; int result2 = fib (n- 2 ) ;

regreso resultado1 + result2 ;} }


la estructura del " caso base " y " paso recursivo " será el mismo para todas las funciones recursivas , aunque puede haber varios casos base y los pasos recursivos largo.

Lenguajes De Programación
Cómo convertir una aplicación de un control ActiveX
CURL y HTTP no pudo resolver Anfitrión
Cómo convertir de RGB a un único Decimal
Nested Tabla Tutorial HTML
Extreme Programming Training
¿Cómo resolver matrices usando QBasic
CheckInstall para Mac OSX
¿Cómo puedo hacer un juego de carreras de coches en Flash 8
Conocimientos Informáticos © http://www.ordenador.online