prolog
DESCRIPTION
Prolog. Def . Recursiva d isjuntos([],_). d isjuntos([X|Y],Z) :- not ( pert (X,Z)),disjuntos(Y,Z). Def . Conjuntos Disjuntos.- Dos conjuntos A y B son disjuntos si A B = . Def . Iterativa disjuntos_iter (X,Y) :- not ( ( pert (Z,X), pert (Z,Y))). Ejercicio. - PowerPoint PPT PresentationTRANSCRIPT
PrologDef. Conjuntos Disjuntos.- Dos conjuntos A y
B son disjuntos si A B =
Def. Recursivadisjuntos([],_).disjuntos([X|Y],Z) :-not (pert(X,Z)),disjuntos(Y,Z).
Def. Iterativadisjuntos_iter(X,Y) :-not( (pert(Z,X),pert(Z,Y))).
EjercicioDef. Subconjunto. Sean A y B dos conjuntos tal que cada elemento de A es también elemento de B. Entonces, se dice que:A es subconjunto de B, y se denota A B
Def. Recursivasubconjunto([],_).subconjunto([X|Y],Z):-pert(X,Z), subconjunto(Y,Z).
Def. Iterativasubconj_iter([],_).subconj_iter(X,Y):-not((pert(Z,X), not(pert(Z,Y)))).
Otra ver. de Subconjunto
subconjunto([],[]).
subconjunto([X|L1],[X|L2]):-subconjunto(L1,L2).
subconjunto(L1,[_|L2]):-subconjunto(L1,L2).
Combinatoria
?- combinacion([a,b,c],2,L).L = [a,b] ;L = [a,c] ;L = [b,c] ;false
Def. Combinatoriacombinacion(L1,N,L2):-combinacion_1(L1,N,L2).
combinacion_1(L1,N,L2):-subconjunto(L2,L1), length(L2,N).
combinacion(L1,N,L2):-combinacion_2(L1,N,L2).
combinacion_2(L1,N,L2):-length(L2,N),subconjunto(L2,L1).
Permutaciones
?- select(X,[a,b,c],L).X = a L = [b, c] ;X = b L = [a, c] ;X = c L = [a, b] ;false
?- select(a,L,[b,c]).L = [a, b, c] ;L = [b, a, c] ;L = [b, c, a] ;false
Implementaciones
permuta([],[]).permuta(L1,[X|L2]):-select(X,L1,L3),permuta(L3,L2).
Cuadrado Mágico
Enunciado: Colocar los números 1,2,3,4,5,6,7,8,9 en un cuadrado 3x3 de forma que todas las líneas (filas, columnas y diagonales) sumen igual.
cuadrado_1([A,B,C,D,E,F,G,H,I]) :-permutación([1,2,3,4,5,6,7,8,9],
[A,B,C,D,E,F,G,H,I]),A+B+C =:= 15, D+E+F =:= 15,G+H+I =:= 15, A+D+G =:= 15,B+E+H =:= 15, C+F+I =:= 15,A+E+I =:= 15, C+E+G =:= 15.
Implementación
SoluciónCuadrado Mágico
SoluciónCuadrado Mágico
Planeación
d(a,b).d(b,e).d(b,c).d(d,e).d(c,d).d(e,f).d(g,e).go(X,X,T).Go(X,Y,T)