Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Recursividad: solución de problemas mediante casos más sencillos del mismo problema, Guías, Proyectos, Investigaciones de Derecho

La recursividad es un método para resolver problemas complejos mediante casos más sencillos del mismo problema. Una función recursiva se define como aquella que se llama a sí misma, reduciendo gradualmente la complejidad hasta llegar a un caso trivial. Un ejemplo clásico es el cálculo de la factorial de un número. La factorial de un número se puede calcular multiplicando ese número por las factoriales de los números que le preceden, hasta llegar a uno. La siguiente clase C# muestra una función recursiva para calcular la factorial de un número. La documentación también incluye consideraciones importantes sobre la primera parte de la función recursiva y la anidación de instrucciones if.

Tipo: Guías, Proyectos, Investigaciones

2022/2023

Subido el 19/11/2022

usuario desconocido
usuario desconocido 🇧🇴

3 documentos

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Recursividad
La recursividad consiste en resolver un problema a partir de casos más simples del mismo problema. Una
función recursiva es aquella que se "llama a ella misma", reduciendo la complejidad paso a paso hasta llegar
a un caso trivial. Uno clásico es el "factorial de un número":
La factorial de 1 es 1:
1! = 1
Y la factorial de un número arbitrario es el producto de ese número por los que le siguen, hasta llegar a uno:
n! = n · (n-1) · (n-2) · ... · 3 · 2 · 1
(por ejemplo, la factorial de 4 es 4 • 3 • 2 • 1 = 24)
Si pensamos que la factorial de n-1 es
(n-1)! = (n-1) · (n-2) · (n-3) · ... · 3 · 2 · 1
Entonces podemos escribir la factorial de un número a partir de la factorial del siguiente número:
n! = n · (n-1)!
using System;
public class Ejemplo_05_10a
{
public static long Factorial(int n)
{
if (n==1) // Aseguramos que termine (caso base)
return 1;
return n * Factorial(n-1); // Si no es 1, sigue la recursión
}
public static void Main()
{
int num;
Console.WriteLine("Introduzca un número entero: ");
num = Convert.ToInt32(System.Console.ReadLine());
Console.WriteLine("Su factorial es: {0}", Factorial(num))
}
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Recursividad: solución de problemas mediante casos más sencillos del mismo problema y más Guías, Proyectos, Investigaciones en PDF de Derecho solo en Docsity!

Recursividad La recursividad consiste en resolver un problema a partir de casos más simples del mismo problema. Una función recursiva es aquella que se "llama a ella misma", reduciendo la complejidad paso a paso hasta llegar a un caso trivial. Uno clásico es el "factorial de un número": La factorial de 1 es 1: 1! = 1 Y la factorial de un número arbitrario es el producto de ese número por los que le siguen, hasta llegar a uno: n! = n · (n-1) · (n-2) · ... · 3 · 2 · 1 (por ejemplo, la factorial de 4 es 4 • 3 • 2 • 1 = 24) Si pensamos que la factorial de n-1 es (n-1)! = (n-1) · (n-2) · (n-3) · ... · 3 · 2 · 1 Entonces podemos escribir la factorial de un número a partir de la factorial del siguiente número: n! = n · (n-1)! using System; public class Ejemplo_05_10a { public static long Factorial(int n) { if (n== 1 ) // Aseguramos que termine (caso base) return 1 ; return n * Factorial(n- 1 ); // Si no es 1, sigue la recursión } public static void Main() { int num; Console.WriteLine("Introduzca un número entero: "); num = Convert.ToInt32(System.Console.ReadLine()); Console.WriteLine("Su factorial es: {0}", Factorial(num)) }

Dos consideraciones importantes:  Atención a la primera parte de la función recursiva: es muy importante comprobar que hay salida de la función, para que nuestro programa no se quede dando vueltas todo el tiempo y deje el ordenador (o la tarea actual) "colgado". Debemos encontrar un "caso trivial" que alcanzar, y un modo de disminuir la complejidad del problema acercándolo a ese caso.  Las factoriales crecen rápidamente, así que no conviene poner números grandes: la factorial de 16 es 2.004.189.184, luego a partir de 17 podemos obtener resultados erróneos, si usamos números enteros "normales". La instrucción "if" tiene un par de modificadores que ayudan a tener mayor control del programa

La diferencia entre este ejemplo y el de la lección anterior con 3 instrucciones "if", es

que esta sentencia está anidada. Quiere decir que cambia la forma de actuación.

En este ejemplo, se comprueba si se cumple la primera condición y hay dos caminos

posibles:

1. Si se cumple la condición: se ejecuta el código en su interior y sale del If.

2. Si no se cumple la condición: se pasa a la siguiente condición, así hasta cumplir

alguna o finalizar la instrucción If.