Ahoj,
nevite, jak se dela tohle v Prologu?
Vygenerujte vsechny soucty s celkovym souctem N
Napr. N = 5: 5 = 4 + 1 = 3 + 2 = 3 + 1 + 1 atd.
Je to urcite strasne trivialni, ale zrovna ted to zkratka nemuzu dat dohromady.
Diky moc
Problem s ulohou v Prologu
- Lukas Mach
- Matfyz(ák|ačka) level III
- Příspěvky: 261
- Registrován: 28. 3. 2006 17:08
- Typ studia: Informatika Bc.
- Bydliště: Praha a Kladno
- Kontaktovat uživatele:
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([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 :]
Trouble? I call it sport.