IA Listas Prolog

Páginas: 2 (287 palabras) Publicado: 26 de septiembre de 2014
Problemas Resueltos Inteligencia Artificial

Listas
1. Define los siguientes predicados:
concatena(Xs,Ys,XsYs) XsYs es la concatenación de las listas Xs eYs.
selecciona(X,AsXBs,AsBs) AsBs es la lista AsXBs con una aparición menos del elemento X.
suma(Xs,N) N es la suma de todos los elementos de la lista Xs.todosmayores(Xs,N) todos los elementos de la lista Xs son mayores que N.
concatena([],Ys,Ys).
concatena([X|Xs],Ys,[X|Zs]):-
concatena(Xs,Ys,Zs).selecciona(X,[X|Xs],Xs).
selecciona(X,[Y|Ys],[Y|Zs]):-
selecciona(X,Ys,Zs).
suma([],0).
suma([X|Xs],N):-
suma(Xs,N1),
N is X+N1.
todosmayores([],_N).todosmayores([X|Xs],N):-
X>N,
todosmayores(Xs,N).
2. Define un predicado premax(PsRs,N,Ps,Rs) que devuelva en Ps el prefijo no vacío más largo posible de la lista PsRs, tal quela suma de sus elementos no supere el valor N, y devuelva en Rs el resto de PsRs. Ejemplo:
?- premax([3,6,2,1,6,4],10,Ps,Rs).
Ps = [3,6] Rs = [2,1,6,4]
?-premax([13,6,2,1,6,4],10,Ps,Rs).
No
premax([X|Xs],N,[X|Xs],[]):-
suma([X|Xs],M),
M= N.
3. Define un predicado partir(Ls,N,Es) que devuelva en Es la lista de lassublistas lo más largas posible de Ls tales que la suma de sus elementos no supere el valor N.
?- partir([3,6,2,1,6,4],10,Es).
Es = [[3,6],[2,1,6],[4]]
?-partir([3,6,2,12,6,4],10,Es).
No
partir([],_,[]).
partir([X|Xs],N,[As|Yss]):-
premax([X|Xs],N,As,Bs),
partir(Bs,N,Yss).
4. Escriba las reglas necesarias paraimprimir una lista de la siguiente forma.

Solución

5. Escriba las reglas necesarias para agregar un elemento al principio de una lista.

Solución
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Listas en prolog
  • listas en prolog
  • Listas en prolog
  • Operacion con listas prolog
  • Listas en visual prolog
  • A IA
  • IA
  • Prolog

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS