24. Recursividad en Listas La estructura de listas es recursiva cuando (el “resto” de una lista es a su vez una lista), la mayoría de los programas sobre listas serán recursivos de forma natural. Ejemplo: Supongamos que tenemos la lista de las personas que asistirán a un a reunión y queremos averiguar si una determinada persona irá a ella. En Prolog seria: miembro(X, L)" que significa X es miembro de la lista L. 1. miembro(X, [X|Y]). 2. miembro(X, [Y|Z]) :- miembro(X,Z). Una posible pregunta al programa es: ? miembro(pedro, [maría, pedro, juan, ana]). ? miembro(pedro, [maria, pedro, juan, ana]). 2. {X1®pedro, Y1®maria, Z1® [pedro,juan,ana]} ? miembro(pedro, [pedro, juan, ana]). 1. {X2®pedro, Y2® [juan,ana]} ı EXITO (la contestación es si)
25. Definición de Árbol A A C C B B G G E E F F D D Un árbol (tree) es un tipo de dato abstracto (T.D.A.) que consta de un conjunto finito T de nodos y una relación R (paternidad) entre los nodos tal que: Hay un nodo, especialmente designado, llamado la raíz del árbol T.
26. Códigos de Árbol A A C C B B G G E E F F D D En Prolog seria: es_padre(B,D):- es_hijo(D,B).es_nieto(D,A):- es_padre(B,D), es_padre(A,B).
27. Grafos A B C D E Un grafo (en inglés graph) es un T.D.A. que representa un conjunto finito N de nodos, llamados vértices, relacionados entre sí por un conjunto R de arcos. Grafo con 5 vértices y 6 arcos. Vértices del Grafo N ={ A, B, C, D, E } Arcos del Grafo R={(A, A), (A, B), (A, D), (A, C), (D, C), (C, E)}
28. Representación Matricial de Grafos A B C D E A B 0 1 2 3 4 C D 0 1 2 3 4 0 1 2 3 4 0 1 1 0 0 E 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 Vértices Matriz de Adyacencia
29. Sucesión de Fibonacci En matemática, la sucesión de Fibonacci es la siguiente sucesión infinita de números naturales: La sucesión inicia con 0 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores. 0,1,1,2,3,5,8,13……….. A cada elemento de esta sucesión se le llama número de Fibonacci. Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computación, matemáticas y teoría de juegos. La sucesión fue descrita por Fibonacci como la solución a un problema de la cría de conejos: "Cierto hombre tenía una pareja de conejos juntos en un lugar cerrado y uno desea saber cuántos son creados a partir de este par en un año cuando es su naturaleza parir otro par en un simple mes, y en el segundo mes los nacidos parir también".
30. 22 Ejemplo: Serie de Fibonacci Valores: 0, 1, 1, 2, 3, 5, 8... Cada término de la serie suma los 2 anteriores. Fórmula recursiva fib(n) = fib (n - 1) + fib (n - 2) Caso base: Fib (0)=0; Fib (1)=1 Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2) public static int fib(int n){ if (n <= 1) return n; //condición base else return fib(n-1)+fib(n-2); //condición recursiva }
31. Aplicaciones de Fibonacci Razón de oro La idea Si divides una línea en dos partes de manera que: entonces tienes la razón de oro.
37. Aplicaciones electrónicas.Teoría del Caos Teoría matemática encargada de realizar sistemas con comportamiento impredecibles y aparentemente aleatorios.