od Veslar » 27. 1. 2007 19:23
head([],0).
head([A|_],A).
generuj2(X,X).
generuj2([X|O],Vystup):-X > 1, A is X-1, X >= A,head(O,N),N=<1, generuj2([A,1|O],Vystup).
generuj2([X,Y|O],Vystup):-X > 1, A is X-1, B is Y+1, A>=B, head(O,N),B>=N,generuj2([A,B|O],Vystup).
generuj(N,X):-generuj2([N],X).
Neco takoveho ti vyhodi seznam vsech moznych scitancu, kdyz budes mackat strednik a snad se tam ani neopakujou odpovedi. Pokud chces aby to vyhodilo naraz, tak to cele jeste zabal do predikatu bagof....
melo by to jet :]
head([],0).
head([A|_],A).
generuj2(X,X).
generuj2([X|O],Vystup):-X > 1, A is X-1, X >= A,head(O,N),N=<1, generuj2([A,1|O],Vystup).
generuj2([X,Y|O],Vystup):-X > 1, A is X-1, B is Y+1, A>=B, head(O,N),B>=N,generuj2([A,B|O],Vystup).
generuj(N,X):-generuj2([N],X).
Neco takoveho ti vyhodi seznam vsech moznych scitancu, kdyz budes mackat strednik a snad se tam ani neopakujou odpovedi. Pokud chces aby to vyhodilo naraz, tak to cele jeste zabal do predikatu bagof....
melo by to jet :]