Elnézést a "spamért", fél perc alatt leesett és kijavítottam. Egy kis
tipp ha valaki hasonló problémával küzd - fel kell ébreszteni az AND
és OR démonokat ha eldönthető a két bemenő paraméter egyenlősége...
József Dániel
2009/3/18 József Dániel <daniel.jozsef(a)gmail.com>om>:
Tisztelt tanár úr!
A programom két teszten hibás eredményt adott a tesztrendszer szerint,
de a megadott eseteket itthon lefuttatva nekem helyesnek tűnik a
megoldás.
Szeretném a segítségét kérni hogy hol keressem a bajt.
7. teszteset, idõlimit = 5 sec
---------------------------------
% loading /ets/ets/guts/hwks/09s/nlp1/JozsefDaniel.KIP30T/nlpeval.ql...
% module dp_test imported into user
Goal: sat(X*X=:=Y), all solutions in [X,Y]:
expected 1 solution: [A,A],
got 1 solution: [A,B]
test failed
>>>> A program lefutott, a megoldás
HIBÁS.
Ugyanez nálam:
| ?- sat(X*X=:=Y).
prolog:trig_ground(X,[],[X],_A,_B),
prolog:trig_ground(X,[],[X],_A,_C),
prolog:trig_or([_B,_C,_D],_A,_A),
prolog:when(_A,(ground(X);ground(X);ground(Y)),user:and(X,X,Y)),
prolog:trig_ground(Y,[],[Y],_A,_D) ? ;
no
| ?- sat(X*X=:=Y), labeling([X,Y]).
X = 1,
Y = 1 ? ;
X = 0,
Y = 0 ? ;
no
Ez jónak tűnik... Felesleges választási pontokat sem látok...
9. teszteset, idõlimit = 5 sec
---------------------------------
% loading /ets/ets/guts/hwks/09s/nlp1/JozsefDaniel.KIP30T/nlpeval.ql...
% module dp_test imported into user
Goal: sat(X+Y=:=Z),X=Y, all solutions in [X,Y,Z]:
expected 1 solution: [A,A,A],
got 1 solution: [A,A,B]
test failed
>>>> A program lefutott, a megoldás
HIBÁS.
Nálam:
| ?- sat(X+Y=:=Z), X=Y.
Y = X,
prolog:trig_ground(X,[],[X],_A,_B),
prolog:trig_or([_B,_C,_D],_A,_A),
prolog:when(_A,(ground(X);ground(X);ground(Z)),user:or(X,X,Z)),
prolog:trig_ground(Z,[],[Z],_A,_D),
prolog:trig_ground(X,[],[X],_A,_C) ? ;
no
| ?- sat(X+Y=:=Z), X=Y, labeling([X,Y,Z]).
X = 1,
Y = 1,
Z = 1 ? ;
X = 0,
Y = 0,
Z = 0 ? ;
no
Ez lényegében ugyanaz a feladat mint az előző, itt sem látok hibát...
Köszönettel,
József Dániel