Ayuda combinatoria

Nadya
23 de Noviembre del 2005
Alguien tiene un programa en prolog que reciba una lista de listas y que regrese todas las combinaciones posibles?

Por ejemplo

?-combina([[a,b,c],[d,e,f],[g,h,i]],Lista).
Lista=[[a,d,g],[a,d,h],[a,d,i],
[a,e,g],[a,e,h],[a,e,i],
[a,f,g],[a,f,h],[a,f,i],
[b,d,g],[b,d,h],[b,d,i],
[b,e,g],[b,e,h],[b,e,i],
[b,f,g],[b,f,h],[b,f,i],
[c,d,g],[c,d,h],[c,d,i],
[c,e,g],[c,e,h],[c,e,i],
[c,f,g],[c,f,h],[c,f,i]]

Otro ejemplo:

?-combina([[1,2],[3,4]],L).
L=[[1,3],[1,4],[2,3],[2,4]]

arturion
23 de Noviembre del 2005
No conozco el lenguage prolog, pero si tiene ciclos FOR, sólo tendrías que aplicar dos FOR anidados. Suerte.