Стрелецкие соревнования
Трое друзей соревновались в стрельбе по мишени.
- Держу пари, - сказал первый перед началом соревнования, - что по меньшей мере один из вас двух не угодит в цель с первого раза.
- Держу пари, - ответил ему другой, - что если тебе удастся первый выстрел, то ты выигрываешь свое пари.
- А я, - молвил тогда третий, - я просто держу пари, что каждый из нас трех угодит в цель с первого раза.
Они выстрелили. Могло ли случится так, чтобы второй и третий стрелки одновременно выиграли или одновременно проиграли свое пари?
domains
i = integer
predicates
nondeterm pari1(i,i,i)
nondeterm pari2(i,i,i)
nondeterm pari3(i,i,i,i)
nondeterm shut(i)
nondeterm go
clauses
shut(0).
shut(1).
pari1(1, V2, V3) :- V = V2 + V3, V < 2, !.
pari1(0,_,_).
pari2(1,1,1):-!.
pari2(0,_,_).
pari3(1,1,1,1):-!.
pari3(0,_,_,_).
go() :- write(“No”).
go() :- shut(V1),shut(V2),shut(V3),
pari1(R1, V2, V3),
pari2(R2, R1, V1),
pari3(R3, V1, V2, V3),
R2=R3,
write(“Yes”).
goal
go.
очень нужно!!!!!!!!
Это сообщение было отредактировано popoff 27.02.09 19:32.