SoloCodigo
		Programación Específica => Inteligencia Artificial => Mensaje iniciado por: Nicko_11 en Lunes 30 de Abril de 2007, 12:21
		
			
			- 
				Hola!
 
 tengo que hacer una serie de ejercicios de prolog para la uni y me he quedado enganchado en uno, llevo un rato mirando en foros y webs pero no me aclaro, a ver si pueden ayudarme, plis!
 
 este es el enunciado:
 
 Escriba un predicado vuelta(I, L, B), donde:
 - I es la cantidad de dinero a devolver.
 - L es una lista de los billetes con los que se cuenta para realizar la devolución ordenada de forma descendiente.
 - en B se debe devolver la lista de la cantidad billetes de cada tipo que se deben devolver. La devolución debe realizarse utilizando la menor cantidad de billetes.
 
 por ejemplo ejemplo: vuelta(12, [5, 4, 1], B).
 
 El interprete debe devolver en B la lista [0, 3, 0]
 
 
 Gracias!
- 
				en un principio creo que lo tengo, sería algo así???
 
 vuelta(0,[],[]).
 %miro de uno en uno lo que hace
 %para el caso de la J, incremento el valor del contador A y miro si ya es I, si no, sumo J a J y utilizo la recursividad
 vuelta(I,(J,Q,K),(A,B,C)) :- A1=A+1,I<=J,J1=J+J,vuelta(I,(J1,Q,K),(A1,B1,C1)).
 %lo mismo para la Q
 vuelta(I,(J,Q,K),(A,B,C)) :- B1=B+1,I<=Q,Q1=Q+Q,vuelta(I,(J,Q1,K),(A1,B1,C1)).
 %lo mismo para la K
 vuelta(I,(J,Q,K),(A,B,C)) :- C1=C+1,I<=K,K1=K+K,vuelta(I,(J,Q,K1),(A1,B1,C1)).
 
 
 
 alguien puede ayudarme?