Sziasztok!

Az első kis házi megoldása közben a következő érdekes problémába ütköztem: a beadón lévő összes teszteset sikeres, kivéve az utolsó előttit. A teszteset így néz ki:

[X,Y,Cin]=[1,1,0],[Sum,Cout]=[1,0],count([F1,F2,F3,F4,F5],1),sat((((F1+(U1=:=X*Cin)*F2+(U2=:=Y*U3))*F3+(Cout=:=U1+U2))*F4+(U3=:=X#Cin))*F5+(Sum=:=Y#U3)),labeling([F1,F2,F3,F4,F5]).

A beadott programom megtalálja az egyetlen helyes megoldást, viszont emellett még felsorol néhány másikat is, mégpedig olyanokat, ahol egynél több egyes van behelyettesítve, tehát a count([...], 1) nem teljesül. Próbáltam kisebb példákon keresztül leszűkíteni, hogy hol lehet a hiba, de nem sikerült olyan esetet találnom, ahol rosszul működne a count() eljárásom (a fenti tesztesetet kivéve). Sőt: a fenti tesztesetnél, ha nem labeling-et használok, hanem explicit behelyettesítem a változók helyére bármelyik eredetileg számolt rossz megoldást, akkor úgy már helyesen következtet, hogy 'no', illetve ha a count(...) hívást a labeling(...) utánra teszem, már csak az egyetlen helyes megoldást sorolja fel.

Esetleg valaki találkozott hasonlóval, vagy van valakinek ötlete, hogy mi okozhatja ezt a működést? Köszönöm előre is a segítséget.

Üdv,
Oláh Gergely