Szabó Marcell <szabomarcell(a)axelero.hu> writes:
Ma megírtam a nagyházit, mégpedig clpb-re alapozva.
Felvettem minden ujj részére 3 változót, a három irányt, amerre mutathat, a
három ujjirányból pontosan 1 igaz. Majd minden mezõhöz kigyûjtöttem egy
listába azokat az ujjirányokat, amik rá mutathatnak, és ezek közül pontosan
annyi igaz, ahányas számú a mezõ (kivéve a 9-est).
Tehát mindenhol card() feltételt használtam.
És katasztrófa! A mezõk feltételei (tehát a sat(card(...))) percekig futnak.
Próbálkoztam azzal, hogy a feltételeket kigyûjtöm egy listába, sorba
rendezem aszerint, hogy hányas a mezõ - így hátha a kisebbek
behelyettesítenek párat, de semmi javulás. (Bizonyára mindig mindenkit
felkelt és rugdos, hogy mi lenne ha te most igaz lennél?... Ez lassabb, mint
maga a lableing, és a memória is elfogy!)
Bizony igen. Valoszinuleg nem voltal ott a clpb-s eloadason, ahol eleg
hangsulyosan ecseteltem, hogy a CLPB - a teljessege miatt - NEM ALKALMAS
nagymeretu feladatok megoldasara, es ezert senki ne probalja a nagyhazijat
clpb-vel megoldani!!!!
Az lenne a megoldás, gondolom, hogy a sat(card) egy
gyengébb változatát
használnám, ami csak a tuti behelyettesítéseket szûkítené, dobná el - de ha
jól tudom, a clpb-hez nem lehet hozzányúlni.
Ez igy van.
Vagy írjam meg clpfd-ben a sat(card())-ot, és azzal
futtassam?
Igen. Illetve nem is kell megirnod, ott van a count konyvtari eljaras.
-Peter