SlideShare una empresa de Scribd logo
Quizás en la teoría cueste más ver lo que es una función recursiva que por la práctica. Un
ejemplo típico de recursividad sería la función factorial. El factorial es una función
matemática que se resuelve multiplicando ese número por todos los números naturales que
hay entre él y 1.


Por ejemplo, factorial de 4 es igual a 4 * 3 * 2 * 1. Si nos fijamos, para el ejemplo de
factorial de 4 (factorial se expresa matemáticamente con un signo de admiración hacia
abajo, como 4!), se puede resolver como 4 * 3! (4 * factorial de 3). Es decir, podemos
calcular el factorial de un número multiplicando ese número por factorial de ese número
menos 1.


n! = n * (n-1)!


En el caso de la función factorial, tenemos el caso básico que factorial de 1 es igual a 1. Así
que lo podremos utilizar como punto de ruptura de las llamadas recursivas.


Así pues, vamos a realizar la codificación de la función recursiva factorial. Primero veamos
un pseudocódigo:


funcion factorial(n)
   si n=1 entonces
      factorial = 1
   sino
      factorial = n * factorial(n-1)
fin funcion



unciones recursivas
Vamos a ver como se construye una clase de funciones, llamadas recursivas
primitivas, definidas entre n-uplas de números naturales sobre los números
naturales 31, (es decir           ), con la idea de caracterizar las funciones
que son efectivamente calculables, es decir, aquellas funciones para las que
dada la n-upla de sus argumentos podemos definir un procedimiento para
encontrar en un numero finito de pasos el valor de la función.

Usaremos para ello una definición recursiva, es decir, nos apoyaremos en un
conjunto de funciones que por definición son recursivas (conjunto inicial que
se denomina base de la recursión), y en un conjunto de reglas que
aplicándolas a funciones recursivas primitivas ya definidas obtenemos nuevas
funciones recursivas. En nuestro caso la base esta formada por las
funciones nula, sucesor y proyección, y las reglas que llamamos
decomposición y de recursión primitiva. Estos elementos quedan definidos de
la siguiente forma:

Base de recursión:

Función nula                   :
mediante la que se hace corresponder a cualquier numero natural el
      numero 0 (borrar el numero).
Función sucesor            :
     mediante la cual a cada numero natural se le hace corresponder su
     sucesor, que denotamos por (encontrar el siguiente).
Función proyección                              :
     mediante la cual a cada n-upla se le hace corresponder su i-esima
     componente (elegir uno de una sucesión finita)



Reglas:

Regla de composición :
      dadas las funciones




      y la función   que depende de las      funciones anteriores, es decir



      entonces decimos que




      es la función compuesta de las      mediante   si está definida de la
      siguiente forma:




Regla de recursion primitiva con parametros:
      dadas dos funciones recursivas conocidas
que dependen de los parámetros                , se define la función



      mediante el siguiente esquema de recursión:




Regla de recursion primitiva sin parametros:
      es un caso particular del anterior en el que no aparecerán los parámetros
      y el esquema de recursión sería:




      donde        es una función recursiva conocida y      es una constante
      (un numero natural dado).

La clase de funciones definidas de esta manera, es una clase de funciones que
se puede calcular efectivamente, ya que son construidas a partir un conjunto
base, cuyo cálculo puede ser considerado trivial, y mediante procedimientos o
esquemas de cálculo sencillos y que se realizan por pasos sucesivos 32. Se
prueba que esta clase de funciones es la misma que la que se define utilizando
para ello las Maquinas de Turing, que describimos a continucion.

regunta 2

Escriba un programa que sirva para saber las posibilidades de movimiento de
un caballo en una partida de ajedréz de una casilla a otra (por ejemplo para
comer una pieza). Para ello se ha creado una matriz A[8][8] la cual contiene
un mapa del tablero (0 si la casilla está vacía o 1 si está ocupada) y se debe
crear un programa donde ingresando el punto de inicio y el de destino diga si
existe una combinación de movimientos posibles que lo lleven del inicio al
destino sin que pase a través de una casilla ocupada o no. (Problema
difícil!!!!,estudienlo)
Solución

/* 1 es SI HAY, 0 es NO HAY */



intrecorrer(int A[][], int i, int j, int p, int q)

{

if (i<0 || i>=8 || j<0 || j>=8) return false; /* Fuera del tablero */

if ((i==p) && (j==q)) return true;              /* Mismolugar */

if (A[i][j]==1) return false;               /* casilla ocupada */

A[i][j]=1;                            /* Ocupo la casilla */

                                 /* Así evito ciclos */

return recorrer (A, i-2, j-1, p,q) ||

     recorrer (A, i-2, j+1, p,q) ||

     recorrer (A, i-1, j-2, p,q) ||

     recorrer (A, i-1, j+2, p,q) ||

     recorrer (A, i+1, j-2, p,q) ||

     recorrer (A, i+1, j+2, p,q) ||

     recorrer (A, i+2, j-1, p,q) ||

     recorrer (A, i+2, j+1, p,q);

}



Pregunta 3

Un copo de nieve se puede definir como un punto, varias ramas en círculo que
salen de él y luego un copo de nieve de 1/3 del tamaño anterior en la punta de
cada una de esas ramas. Las ramas son del mismo tamaño y están dispuestas
con el mismo ángulo entre ellas. Se pide escribir una función recursiva:
dibuja_arbol(int x, int y, int n, int l, int nivel)

Donde (x,y) son las coordenadas del centro; n es el número de ramas; l es el
largo de las ramas y nivel es el número de niveles que quiero (en el último
nivel se dibuja un círculo de radio l). Por ejemplo, del llamado
dibuja_arbol(400,300,6,200,4) se obtiene:




Para calcular las ramas, deben encontrar el ángulo alfa y las coordenadas de
las puntas de todas las ramas, usando seno y coseno del ángulo
correspondiente. Para el caso de 8 ramas se tiene:
Para dibujar posee las funciones linea (int x1, int y1, int x2, int y2) que dibuja
una línea entre los puntos (x1,y1) y (x2,y2). Y el método circ (int x, int y, int
r) que dibuja una circunferencia de centro (x,y) y radio r.

Solución

#include<math.h>



voiddibuja_arbol(int x, int y, int n, int l, int nivel)

{

float alfa = 2*PI/n;



if(nivel == 0)

    {

    circ(x,y,l);

    return;

    }



/* Aca se itera con el angulo alfa */



for(int i = 0; i < n; i++)

    {

    linea(x, y, (int)(x+l*cos(i*alfa)), (int)(y-l*sin(i*alfa)));

    dibuja_arbol((int)(x+l*cos(i*alfa)),(int)(y-l*Math.(i*alfa)),

              n, l/3, nivel-1);

    }

}
Problemas propuestos

Problema 1: Las torres de Hanoi

Se tienen las torres de Hanoi, en que hay que llevar las n fichas de A hasta C,
siempre dejando una ficha mas pequeña sobre otra mas grande. Se puede
utilizar B para pasar algunas fichas. Plantee el algoritmo recursivo que lo
                         realiza.




Problema 2: Tratamiento de enteros

Escriba una función recursiva que reciba un entero y retorne un String con los
digitos invertidos y separados por *. Por ejemplo:

Ingrese un número: 12345

5*4*3*2*1
Funcion recursiva

Más contenido relacionado

La actualidad más candente

Tic9°
Tic9°Tic9°
Teoría Elemental de Funciones ccesa007
Teoría Elemental de Funciones  ccesa007Teoría Elemental de Funciones  ccesa007
Teoría Elemental de Funciones ccesa007
Demetrio Ccesa Rayme
 
Definicion de funcion,rango,dominio, ejemplos de funciones
Definicion de funcion,rango,dominio, ejemplos de funcionesDefinicion de funcion,rango,dominio, ejemplos de funciones
Definicion de funcion,rango,dominio, ejemplos de funciones
Hugo Arturo Gonzalez Macias
 
Calculo
CalculoCalculo
Función potencia
Función potenciaFunción potencia
Función potencia
Colegio Alicante del Rosal
 
Funciones racionales
Funciones racionalesFunciones racionales
Funciones racionales
L2DJ Temas de Matemáticas Inc.
 
Mat-133 Presentacion powerpoint
Mat-133 Presentacion powerpointMat-133 Presentacion powerpoint
Mat-133 Presentacion powerpoint
musc133
 
Funciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmicaFunciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmica
mpalmahernandez
 
Presentación1
Presentación1Presentación1
Presentación1
alanchinogonzalez
 
Funcion
FuncionFuncion
Extremos absolutos analisis 3
Extremos absolutos analisis 3Extremos absolutos analisis 3
Extremos absolutos analisis 3
National University of La Rioja
 
Funciones
FuncionesFunciones
Funciones
LMartinezGarcia
 
Derivadas y su interpretacion
Derivadas y su interpretacionDerivadas y su interpretacion
Derivadas y su interpretacion
Cristian Sanchez
 
Mat i tema 02 funciones
Mat i tema 02 funcionesMat i tema 02 funciones
Mat i tema 02 funciones
LUCIANO sarcco usto
 
Funciones trascendentales, derivadas e integrales
Funciones trascendentales, derivadas e integralesFunciones trascendentales, derivadas e integrales
Funciones trascendentales, derivadas e integrales
Reibis M Cegarra P
 
Funciones reales en una variable
Funciones reales en una variableFunciones reales en una variable
Funciones reales en una variable
asegura-b
 
Funciones trascendentales
Funciones trascendentalesFunciones trascendentales
Funciones trascendentales
joseana sira
 
Comandos más utilizados en maple
Comandos más utilizados en mapleComandos más utilizados en maple
Comandos más utilizados en maple
mirocoyote
 
Introducción a funciones
Introducción a funcionesIntroducción a funciones
Introducción a funciones
Crstn Pnags
 
Clasificacion y Graficas de las Funciones en Calculo Diferencial
Clasificacion y Graficas de las Funciones en Calculo DiferencialClasificacion y Graficas de las Funciones en Calculo Diferencial
Clasificacion y Graficas de las Funciones en Calculo Diferencial
CarlosAamon Corpsezatan
 

La actualidad más candente (20)

Tic9°
Tic9°Tic9°
Tic9°
 
Teoría Elemental de Funciones ccesa007
Teoría Elemental de Funciones  ccesa007Teoría Elemental de Funciones  ccesa007
Teoría Elemental de Funciones ccesa007
 
Definicion de funcion,rango,dominio, ejemplos de funciones
Definicion de funcion,rango,dominio, ejemplos de funcionesDefinicion de funcion,rango,dominio, ejemplos de funciones
Definicion de funcion,rango,dominio, ejemplos de funciones
 
Calculo
CalculoCalculo
Calculo
 
Función potencia
Función potenciaFunción potencia
Función potencia
 
Funciones racionales
Funciones racionalesFunciones racionales
Funciones racionales
 
Mat-133 Presentacion powerpoint
Mat-133 Presentacion powerpointMat-133 Presentacion powerpoint
Mat-133 Presentacion powerpoint
 
Funciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmicaFunciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmica
 
Presentación1
Presentación1Presentación1
Presentación1
 
Funcion
FuncionFuncion
Funcion
 
Extremos absolutos analisis 3
Extremos absolutos analisis 3Extremos absolutos analisis 3
Extremos absolutos analisis 3
 
Funciones
FuncionesFunciones
Funciones
 
Derivadas y su interpretacion
Derivadas y su interpretacionDerivadas y su interpretacion
Derivadas y su interpretacion
 
Mat i tema 02 funciones
Mat i tema 02 funcionesMat i tema 02 funciones
Mat i tema 02 funciones
 
Funciones trascendentales, derivadas e integrales
Funciones trascendentales, derivadas e integralesFunciones trascendentales, derivadas e integrales
Funciones trascendentales, derivadas e integrales
 
Funciones reales en una variable
Funciones reales en una variableFunciones reales en una variable
Funciones reales en una variable
 
Funciones trascendentales
Funciones trascendentalesFunciones trascendentales
Funciones trascendentales
 
Comandos más utilizados en maple
Comandos más utilizados en mapleComandos más utilizados en maple
Comandos más utilizados en maple
 
Introducción a funciones
Introducción a funcionesIntroducción a funciones
Introducción a funciones
 
Clasificacion y Graficas de las Funciones en Calculo Diferencial
Clasificacion y Graficas de las Funciones en Calculo DiferencialClasificacion y Graficas de las Funciones en Calculo Diferencial
Clasificacion y Graficas de las Funciones en Calculo Diferencial
 

Similar a Funcion recursiva

Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)
Spimy
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
pierkross
 
Matematica
MatematicaMatematica
Matematica
moises25563615
 
Espacios L2
Espacios L2Espacios L2
Espacios L2
maria damian
 
Funciones parte ii
Funciones parte iiFunciones parte ii
Funciones parte ii
angiegutierrez11
 
Funciones funci_n_lineal_y_funci_n_cuadratica_presentaci_n
Funciones  funci_n_lineal_y_funci_n_cuadratica_presentaci_nFunciones  funci_n_lineal_y_funci_n_cuadratica_presentaci_n
Funciones funci_n_lineal_y_funci_n_cuadratica_presentaci_n
NorkarelysJosRicardo
 
Funciones trascendentes
Funciones trascendentes Funciones trascendentes
Funciones trascendentes
Maria Jose Abello
 
Recursividad
RecursividadRecursividad
Recursividad
Fabian Araya
 
Funcionestrascendentesmatematica 160522004625
Funcionestrascendentesmatematica 160522004625Funcionestrascendentesmatematica 160522004625
Funcionestrascendentesmatematica 160522004625
beto7500
 
Integrales
IntegralesIntegrales
Integrales
rommergamboa
 
Funciones 2 carlos mata
Funciones 2 carlos mataFunciones 2 carlos mata
Funciones 2 carlos mata
Carlos Calzadilla
 
INF_JARCH
INF_JARCHINF_JARCH
INF_JARCH
jesus_armandor
 
Teoría de Interpolación
Teoría de InterpolaciónTeoría de Interpolación
Teoría de Interpolación
José Alejandro Barazarte
 
Unidad i calculo 2
Unidad i calculo 2Unidad i calculo 2
Unidad i calculo 2
stephanieeps
 
5. funciones
5. funciones5. funciones
5. funciones
andres1768
 
áLgebra(I Bim)
áLgebra(I Bim)áLgebra(I Bim)
áLgebra(I Bim)
Videoconferencias UTPL
 
GUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdfGUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdf
Angeles Sánchez
 
FUNCIONES REALES
FUNCIONES REALESFUNCIONES REALES
FUNCIONES REALES
Cris Panchi
 
Matematica 2
Matematica 2Matematica 2
Matematica 2
Rtavera1
 
Clase 9 dominio y rango
Clase 9 dominio y rangoClase 9 dominio y rango
Clase 9 dominio y rango
Mateslide
 

Similar a Funcion recursiva (20)

Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
Matematica
MatematicaMatematica
Matematica
 
Espacios L2
Espacios L2Espacios L2
Espacios L2
 
Funciones parte ii
Funciones parte iiFunciones parte ii
Funciones parte ii
 
Funciones funci_n_lineal_y_funci_n_cuadratica_presentaci_n
Funciones  funci_n_lineal_y_funci_n_cuadratica_presentaci_nFunciones  funci_n_lineal_y_funci_n_cuadratica_presentaci_n
Funciones funci_n_lineal_y_funci_n_cuadratica_presentaci_n
 
Funciones trascendentes
Funciones trascendentes Funciones trascendentes
Funciones trascendentes
 
Recursividad
RecursividadRecursividad
Recursividad
 
Funcionestrascendentesmatematica 160522004625
Funcionestrascendentesmatematica 160522004625Funcionestrascendentesmatematica 160522004625
Funcionestrascendentesmatematica 160522004625
 
Integrales
IntegralesIntegrales
Integrales
 
Funciones 2 carlos mata
Funciones 2 carlos mataFunciones 2 carlos mata
Funciones 2 carlos mata
 
INF_JARCH
INF_JARCHINF_JARCH
INF_JARCH
 
Teoría de Interpolación
Teoría de InterpolaciónTeoría de Interpolación
Teoría de Interpolación
 
Unidad i calculo 2
Unidad i calculo 2Unidad i calculo 2
Unidad i calculo 2
 
5. funciones
5. funciones5. funciones
5. funciones
 
áLgebra(I Bim)
áLgebra(I Bim)áLgebra(I Bim)
áLgebra(I Bim)
 
GUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdfGUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdf
 
FUNCIONES REALES
FUNCIONES REALESFUNCIONES REALES
FUNCIONES REALES
 
Matematica 2
Matematica 2Matematica 2
Matematica 2
 
Clase 9 dominio y rango
Clase 9 dominio y rangoClase 9 dominio y rango
Clase 9 dominio y rango
 

Último

PPT SUSTENTACION TESIS IV DE CONTABILIDAD
PPT SUSTENTACION TESIS IV DE CONTABILIDADPPT SUSTENTACION TESIS IV DE CONTABILIDAD
PPT SUSTENTACION TESIS IV DE CONTABILIDAD
edgarsnet5
 
Actividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptxActividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptx
luis95466
 
Calculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdfCalculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdf
LEIDYRIOFRIO
 
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANOINVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
jennicaceres
 
Trabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdfTrabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdf
YennyGarcia45
 
apoyo contabilidad para personas que comienza
apoyo contabilidad para personas que comienzaapoyo contabilidad para personas que comienza
apoyo contabilidad para personas que comienza
MarcoCarrillo41
 
Documentos comerciales, documento comercial
Documentos comerciales, documento comercialDocumentos comerciales, documento comercial
Documentos comerciales, documento comercial
JaimeMorra
 
Normas de Seguridad Vial ISO 39001-2012.pdf
Normas de Seguridad Vial ISO 39001-2012.pdfNormas de Seguridad Vial ISO 39001-2012.pdf
Normas de Seguridad Vial ISO 39001-2012.pdf
henrywz8831
 
Tema 3 - Tecnicas de Recoleccion de Datos.pptx
Tema 3 - Tecnicas de Recoleccion de Datos.pptxTema 3 - Tecnicas de Recoleccion de Datos.pptx
Tema 3 - Tecnicas de Recoleccion de Datos.pptx
CarmeloPrez1
 
Ejercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdf
Ejercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdfEjercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdf
Ejercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdf
MelisitaaQuionez
 
1-Infografia Cifras Nacional unimos j.pdf
1-Infografia Cifras Nacional unimos j.pdf1-Infografia Cifras Nacional unimos j.pdf
1-Infografia Cifras Nacional unimos j.pdf
paolamoreno683631
 
Evolución de la mercadotecnia y selección del producto en la empresa KFC
Evolución de la mercadotecnia y selección del producto en la empresa KFCEvolución de la mercadotecnia y selección del producto en la empresa KFC
Evolución de la mercadotecnia y selección del producto en la empresa KFC
AndrobertoAlva
 
fases de control en un centro de computo .pptx
fases de control en un centro de computo .pptxfases de control en un centro de computo .pptx
fases de control en un centro de computo .pptx
jesussantiok1000
 
Automatización Estratégica: De Hojas de Cálculo a Software Especializado
Automatización Estratégica: De Hojas de Cálculo a Software EspecializadoAutomatización Estratégica: De Hojas de Cálculo a Software Especializado
Automatización Estratégica: De Hojas de Cálculo a Software Especializado
Aleksey Savkin
 
Glosario de Terminos de la Revolucion Rusa
Glosario de Terminos de la Revolucion RusaGlosario de Terminos de la Revolucion Rusa
Glosario de Terminos de la Revolucion Rusa
WelingtonOmarSanchez
 
ANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptx
ANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptxANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptx
ANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptx
PalJosuTiznadoCanaza
 
GESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdf
GESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdfGESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdf
GESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdf
CaritoSandi
 
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
micarnavaltupatrimon
 
Tema 20 Cuentas Por Cobrar Finanzas I UNSA
Tema 20 Cuentas Por Cobrar Finanzas I UNSATema 20 Cuentas Por Cobrar Finanzas I UNSA
Tema 20 Cuentas Por Cobrar Finanzas I UNSA
GABRIELAALEXANDRASAI1
 
Técnica lúdica de organización para mejorar la productividad
Técnica lúdica de organización para mejorar la productividadTécnica lúdica de organización para mejorar la productividad
Técnica lúdica de organización para mejorar la productividad
ameliaarratiale12287
 

Último (20)

PPT SUSTENTACION TESIS IV DE CONTABILIDAD
PPT SUSTENTACION TESIS IV DE CONTABILIDADPPT SUSTENTACION TESIS IV DE CONTABILIDAD
PPT SUSTENTACION TESIS IV DE CONTABILIDAD
 
Actividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptxActividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptx
 
Calculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdfCalculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdf
 
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANOINVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
 
Trabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdfTrabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdf
 
apoyo contabilidad para personas que comienza
apoyo contabilidad para personas que comienzaapoyo contabilidad para personas que comienza
apoyo contabilidad para personas que comienza
 
Documentos comerciales, documento comercial
Documentos comerciales, documento comercialDocumentos comerciales, documento comercial
Documentos comerciales, documento comercial
 
Normas de Seguridad Vial ISO 39001-2012.pdf
Normas de Seguridad Vial ISO 39001-2012.pdfNormas de Seguridad Vial ISO 39001-2012.pdf
Normas de Seguridad Vial ISO 39001-2012.pdf
 
Tema 3 - Tecnicas de Recoleccion de Datos.pptx
Tema 3 - Tecnicas de Recoleccion de Datos.pptxTema 3 - Tecnicas de Recoleccion de Datos.pptx
Tema 3 - Tecnicas de Recoleccion de Datos.pptx
 
Ejercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdf
Ejercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdfEjercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdf
Ejercicio de Contabilidad Segundo A Nocturno I y II Hemisemestre-2.pdf
 
1-Infografia Cifras Nacional unimos j.pdf
1-Infografia Cifras Nacional unimos j.pdf1-Infografia Cifras Nacional unimos j.pdf
1-Infografia Cifras Nacional unimos j.pdf
 
Evolución de la mercadotecnia y selección del producto en la empresa KFC
Evolución de la mercadotecnia y selección del producto en la empresa KFCEvolución de la mercadotecnia y selección del producto en la empresa KFC
Evolución de la mercadotecnia y selección del producto en la empresa KFC
 
fases de control en un centro de computo .pptx
fases de control en un centro de computo .pptxfases de control en un centro de computo .pptx
fases de control en un centro de computo .pptx
 
Automatización Estratégica: De Hojas de Cálculo a Software Especializado
Automatización Estratégica: De Hojas de Cálculo a Software EspecializadoAutomatización Estratégica: De Hojas de Cálculo a Software Especializado
Automatización Estratégica: De Hojas de Cálculo a Software Especializado
 
Glosario de Terminos de la Revolucion Rusa
Glosario de Terminos de la Revolucion RusaGlosario de Terminos de la Revolucion Rusa
Glosario de Terminos de la Revolucion Rusa
 
ANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptx
ANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptxANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptx
ANÁLISIS FINANCIERO DE LA EMPRESA GLORIA.pptx
 
GESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdf
GESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdfGESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdf
GESTIÓN DE PROYECThjd djjf djj OS EBV 24.pdf
 
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
 
Tema 20 Cuentas Por Cobrar Finanzas I UNSA
Tema 20 Cuentas Por Cobrar Finanzas I UNSATema 20 Cuentas Por Cobrar Finanzas I UNSA
Tema 20 Cuentas Por Cobrar Finanzas I UNSA
 
Técnica lúdica de organización para mejorar la productividad
Técnica lúdica de organización para mejorar la productividadTécnica lúdica de organización para mejorar la productividad
Técnica lúdica de organización para mejorar la productividad
 

Funcion recursiva

  • 1. Quizás en la teoría cueste más ver lo que es una función recursiva que por la práctica. Un ejemplo típico de recursividad sería la función factorial. El factorial es una función matemática que se resuelve multiplicando ese número por todos los números naturales que hay entre él y 1. Por ejemplo, factorial de 4 es igual a 4 * 3 * 2 * 1. Si nos fijamos, para el ejemplo de factorial de 4 (factorial se expresa matemáticamente con un signo de admiración hacia abajo, como 4!), se puede resolver como 4 * 3! (4 * factorial de 3). Es decir, podemos calcular el factorial de un número multiplicando ese número por factorial de ese número menos 1. n! = n * (n-1)! En el caso de la función factorial, tenemos el caso básico que factorial de 1 es igual a 1. Así que lo podremos utilizar como punto de ruptura de las llamadas recursivas. Así pues, vamos a realizar la codificación de la función recursiva factorial. Primero veamos un pseudocódigo: funcion factorial(n) si n=1 entonces factorial = 1 sino factorial = n * factorial(n-1) fin funcion unciones recursivas Vamos a ver como se construye una clase de funciones, llamadas recursivas primitivas, definidas entre n-uplas de números naturales sobre los números naturales 31, (es decir ), con la idea de caracterizar las funciones que son efectivamente calculables, es decir, aquellas funciones para las que dada la n-upla de sus argumentos podemos definir un procedimiento para encontrar en un numero finito de pasos el valor de la función. Usaremos para ello una definición recursiva, es decir, nos apoyaremos en un conjunto de funciones que por definición son recursivas (conjunto inicial que se denomina base de la recursión), y en un conjunto de reglas que aplicándolas a funciones recursivas primitivas ya definidas obtenemos nuevas funciones recursivas. En nuestro caso la base esta formada por las funciones nula, sucesor y proyección, y las reglas que llamamos decomposición y de recursión primitiva. Estos elementos quedan definidos de la siguiente forma: Base de recursión: Función nula :
  • 2. mediante la que se hace corresponder a cualquier numero natural el numero 0 (borrar el numero). Función sucesor : mediante la cual a cada numero natural se le hace corresponder su sucesor, que denotamos por (encontrar el siguiente). Función proyección : mediante la cual a cada n-upla se le hace corresponder su i-esima componente (elegir uno de una sucesión finita) Reglas: Regla de composición : dadas las funciones y la función que depende de las funciones anteriores, es decir entonces decimos que es la función compuesta de las mediante si está definida de la siguiente forma: Regla de recursion primitiva con parametros: dadas dos funciones recursivas conocidas
  • 3. que dependen de los parámetros , se define la función mediante el siguiente esquema de recursión: Regla de recursion primitiva sin parametros: es un caso particular del anterior en el que no aparecerán los parámetros y el esquema de recursión sería: donde es una función recursiva conocida y es una constante (un numero natural dado). La clase de funciones definidas de esta manera, es una clase de funciones que se puede calcular efectivamente, ya que son construidas a partir un conjunto base, cuyo cálculo puede ser considerado trivial, y mediante procedimientos o esquemas de cálculo sencillos y que se realizan por pasos sucesivos 32. Se prueba que esta clase de funciones es la misma que la que se define utilizando para ello las Maquinas de Turing, que describimos a continucion. regunta 2 Escriba un programa que sirva para saber las posibilidades de movimiento de un caballo en una partida de ajedréz de una casilla a otra (por ejemplo para comer una pieza). Para ello se ha creado una matriz A[8][8] la cual contiene un mapa del tablero (0 si la casilla está vacía o 1 si está ocupada) y se debe crear un programa donde ingresando el punto de inicio y el de destino diga si existe una combinación de movimientos posibles que lo lleven del inicio al destino sin que pase a través de una casilla ocupada o no. (Problema difícil!!!!,estudienlo)
  • 4. Solución /* 1 es SI HAY, 0 es NO HAY */ intrecorrer(int A[][], int i, int j, int p, int q) { if (i<0 || i>=8 || j<0 || j>=8) return false; /* Fuera del tablero */ if ((i==p) && (j==q)) return true; /* Mismolugar */ if (A[i][j]==1) return false; /* casilla ocupada */ A[i][j]=1; /* Ocupo la casilla */ /* Así evito ciclos */ return recorrer (A, i-2, j-1, p,q) || recorrer (A, i-2, j+1, p,q) || recorrer (A, i-1, j-2, p,q) || recorrer (A, i-1, j+2, p,q) || recorrer (A, i+1, j-2, p,q) || recorrer (A, i+1, j+2, p,q) || recorrer (A, i+2, j-1, p,q) || recorrer (A, i+2, j+1, p,q); } Pregunta 3 Un copo de nieve se puede definir como un punto, varias ramas en círculo que salen de él y luego un copo de nieve de 1/3 del tamaño anterior en la punta de cada una de esas ramas. Las ramas son del mismo tamaño y están dispuestas con el mismo ángulo entre ellas. Se pide escribir una función recursiva:
  • 5. dibuja_arbol(int x, int y, int n, int l, int nivel) Donde (x,y) son las coordenadas del centro; n es el número de ramas; l es el largo de las ramas y nivel es el número de niveles que quiero (en el último nivel se dibuja un círculo de radio l). Por ejemplo, del llamado dibuja_arbol(400,300,6,200,4) se obtiene: Para calcular las ramas, deben encontrar el ángulo alfa y las coordenadas de las puntas de todas las ramas, usando seno y coseno del ángulo correspondiente. Para el caso de 8 ramas se tiene:
  • 6. Para dibujar posee las funciones linea (int x1, int y1, int x2, int y2) que dibuja una línea entre los puntos (x1,y1) y (x2,y2). Y el método circ (int x, int y, int r) que dibuja una circunferencia de centro (x,y) y radio r. Solución #include<math.h> voiddibuja_arbol(int x, int y, int n, int l, int nivel) { float alfa = 2*PI/n; if(nivel == 0) { circ(x,y,l); return; } /* Aca se itera con el angulo alfa */ for(int i = 0; i < n; i++) { linea(x, y, (int)(x+l*cos(i*alfa)), (int)(y-l*sin(i*alfa))); dibuja_arbol((int)(x+l*cos(i*alfa)),(int)(y-l*Math.(i*alfa)), n, l/3, nivel-1); } }
  • 7. Problemas propuestos Problema 1: Las torres de Hanoi Se tienen las torres de Hanoi, en que hay que llevar las n fichas de A hasta C, siempre dejando una ficha mas pequeña sobre otra mas grande. Se puede utilizar B para pasar algunas fichas. Plantee el algoritmo recursivo que lo realiza. Problema 2: Tratamiento de enteros Escriba una función recursiva que reciba un entero y retorne un String con los digitos invertidos y separados por *. Por ejemplo: Ingrese un número: 12345 5*4*3*2*1