Академический Документы
Профессиональный Документы
Культура Документы
1.- Factorial
N! = N (N-1)! Para N>1 1!=1
Ejemplo: Factorial 4 = 4*3*2*1 =24
Código en Lisp
FACT
24
2.- Fibonacci
Fib(n) = Fib(n-1) + Fib(n-2) si n>1,
Fib(n)=1 si n <= 1
Ejemplo: Fibonacci 5 = 1 2 3 5 8 Se mostrara el último elemento.
Código en Lisp
CL-USER 3 > (defun fibo (x) ( if ( <= x 1) 1 (+ (fibo (- x 1)) (fibo (- x 2)))))
FIBO
8
3.- Multiplicación recursiva
a * b = a + (a*(b-1)) si b>0,
a*b=0 si b=0
Ejemplo: Multiplicación entera de 4 *3 = 4 + (4 * (3-1)) =…=12
Código en Lisp
MULTI
12
𝑎𝑏 = 1 si b=0
Código en Lisp
CL-USER 8 : 1 > (defun expo(a b) (if (> b 0) (multi a (expo a (- b 1))) 1))
EXPO
64
5.- Algoritmo de Euclides
m.c.d. (a , b) = m.c.d. (b , a mod b) si b>0
m.c.d. (a , b) = a si b=0
Código en Lisp
CL-USER 3 : 1 > (defun mcd(a b) (if (> b 0) (mcd b (mod a b)) a))
MCD
Código en Lisp
CL-USER 7 : 2 > (defun sumaRec3 (lista) (if(endp lista) 0 if(atom (car lista))
SUMAREC3
Código en Lisp
CL-USER 9 : 3 > (defun mostraXt(lista)
(if(endp lista)
NIL
(if(atom(car lista))
(progn
(mostraXt(reverse(cdr lista)))
(progn
(mostraXt(car lista))
(mostraXt(reverse(cdr lista)))
)))
MOSTRAXT
1 3 2 8 4 7 5 6 NIL
8.- Contar todos los elementos de una lista
Código en Lisp
CL-USER 7 : 3 > (defun contar3(lista)
(if(endp lista)
(if(atom(car lista))
(+ 1 (contar3(cdr lista)))
)))
CONTAR3
(if(endp lista)
(+ 0 (contarLista(cdr lista)))
(progn
(+ x (contarLista(cdr lista)))))))
CONTARLISTA
(es_primo 3) T
ES_PRIMO
ES_PRIMO_RECURSIVO
NIL