Помогите решить задачу

Тема в разделе "Другие", создана пользователем Gonzales, 22 май 2009.

Статус темы:
Закрыта.
  1. Gonzales

    Gonzales Гость

    Добрый день!
    Пожалуйста, помогите решить задачку. Я с Прологом не очень дружу ... не совсем понял как считать сколько фруктов взял каждый ребенок, и как посчитать, что он солгал именно столько раз,сколько взял фруктов. И как записать выражения 5, 6 и выражения в конце задачи - I), II)??????
    Всем ответившим,спасибо!


    ЗАДАЧА:
    Поскольку красивая фарфоровая тарелка была уже разбита, на столе стояло лишь простое стеклянное блюдо, но оно было пусто: 4 яблока и 4 банана, которые мама оставила детям на ужин, исчезли!
    Мама очень рассердилась и потребовала, чтобы те, кто без разрешения взял яблоки и бананы, признались. Поднялся страшный гвалт: Юльчи, Эржи, Пишта и Иошка наперебой старались перекричать друг друга.
    (1) Юльчи. Я не трогала яблок!
    (2) Пишта. Но ведь я же взял с блюда...
    (3) Иошка. Первой яблоко взяла Юльчи!
    (4) Пишта. Это девчонки начали растаскивать фрукты с блюда!
    (5) Эржи (Пиште). Помалкивал бы уж, лучше! А то один раз скажешь правду, а после этого непременно два раза соврешь!
    (6) Иошкa. Ты еще споришь? Это вы, девчонки, во всем виноваты и сейчас, и в прошлый раз!
    (7) Юльчи. Мальчишки первыми расхватали бананы!
    (8) Пишта, (обращаясь к Юльчи). Расскажи-ка лучше, как ты взяла яблоко!
    (9) Эржи. Да Иошка один взял больше половины всех яблок!
    (10) Иошка (обращаясь к Эржи). Неправда!
    (11) Эржи. Пишта взял яблоко и банан!
    (12) Иошка. Юльчи не брала бананы!
    (13) Юльчи.. Мальчишки ни разу не сказали правду!
    (14) Пишта. Обе девчонки врут!
    Согласитесь: докопаться до истины маме было нелегко, но она сумела все выяснить. Оказалось, что
    I) лишь один из четырех детей говорил только правду;
    II) каждый из детей солгал столько раз, сколько фруктов (яблок и бананов) он взял с блюда.
    Сколько яблок и сколько бананов взяли с блюда каждый из четырех маленьких «разбойников»?



    МОЁ РЕШЕНИЕ:

    domains
    mesto = symbol
    spisok = mesto*
    nomer = integer

    predicates
    nondeterm vyskazyvanie(nomer,mesto,mesto)
    nondeterm vyskazyvanie(nomer,mesto,mesto,mesto)
    nondeterm vyskazyvanie(nomer,mesto,mesto,mesto,mesto,mesto)
    nondeterm vyyasnit(mesto,mesto,mesto,mesto,mesto,mesto,mesto,mesto)
    clauses

    %1. Yulchi: Ya ne trogala yablok
    vyskazyvanie(1,Yulchi,Yulchi_Yabloki):- Yulchi_Yabloki=0.

    %2. Pishta: No ved ya vzyal s blyuda
    vyskazyvanie(2,Pishta,Pishta_Yabloki,Pishta_Banan):- Pishta_Yabloki>0;Pishta_Banan>0.

    %3. Ioshka: Pervoy yabloka vzyala Yulchi
    vyskazyvanie(3,Ioshka,Yulchi_Yabloki):- Yulchi_Yabloki>0.

    %4. Pishta: Eto devochki nachali brat frukty s blyuda
    vyskazyvanie(4,Pishta,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan):- Yulchi_Yabloki>0;Yulchi_Banan>0;Erzhi_Yabloki>0;Erzhi_Banan>0.

    %5. Erzhi: Pomalkival by!A to 1 raz skazhesh pravdu,a posle etogo 2 raza sovresh
    %vyskazyvanie(5,Erzhi,???):- ???.

    %6. Ioshka: Ty eshe sporish? Eto vy,devchonki,vo vsem vinovaty i seychas i v proshlyi raz
    vyskazyvanie(6,Ioshka,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan):- Yulchi_Yabloki+Erzhi_Yabloki=4,Yulchi_Banan+Erzhi_Banan=4.

    %7. Yulchi: Malshiki pervymi rashvatali banany
    vyskazyvanie(7,Yulchi,Ioshka_Banan,Pishta_Banan):- Ioshka_Banan+Pishta_Banan=4.

    %8. Pishta: Yulchi,rasskazhi kak ty vzyala yabloko
    vyskazyvanie(8,Pishta,Yulchi_Yabloki):- Yulchi_Yabloki=Yulchi_Yabloki+1.

    %9. Erzhi: Ioshka vzyal bolshe poloviny vseh yablok
    vyskazyvanie(9,Erzhi,Ioshka_Yabloki):- Ioshka_Yabloki>2.

    %10. Ioshka: Obrashayas k Erzhi: Nepravda!
    vyskazyvanie(10,Ioshka,Ioshka_Yabloki):- not(vyskazyvanie(9,Erzhi,Ioshka_Yabloki)).

    %11. Erzhi: Pishta vzyal yabloko i banan.
    vyskazyvanie(11,Erzhi,Pishta_Banan,Pishta_Yabloki):- Pishta_Banan=1,Pishta_Yabloki=1.

    %12. Ioshka: Yulchi ne brala banany
    vyskazyvanie(12,Ioshka,Yulchi_Banan):- Yulchi_Banan=0.

    %13. Yulchi: Malchiki ni razu ne skazali pravdu
    vyskazyvanie(13,Yulchi,_,_):-
    not(vyskazyvanie(2,Pishta,Pishta_Yabloki,Pishta_Banan)),
    not(vyskazyvanie(3,Ioshka,Yulchi_Yabloki)),
    not(vyskazyvanie(4,Pishta,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan)
    ),
    not(vyskazyvanie(6,Ioshka,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan)
    ),
    not(vyskazyvanie(8,Pishta,Yulchi_Yabloki)),
    not(vyskazyvanie(10,Ioshka,Ioshka_Yabloki)),
    not(vyskazyvanie(12,Ioshka,Ioshka_Banan)),
    not(vyskazyvanie(14,Pishta,_,_)).

    %14. Pishta: Obe devchonki vrut
    vyskazyvanie(14,Pishta,_,_):-
    not(vyskazyvanie(1,Yulchi,Yulchi_Yabloki)),
    not(vyskazyvanie(7,Yulchi,Ioshka_Banan,Pishta_Banan)),
    not(vyskazyvanie(9,Erzhi,Ioshka_Yabloki)),
    not(vyskazyvanie(11,Erzhi,Pishta_Banan,Pishta_Yabloki)),
    not(vyskazyvanie(13,Yulchi,_,_)).

    vyyasnit(Yulchi_Yabloki,Yulchi_Banan,Pishta_Banan,Pishta_Yabloki,Ioshka_Banan,Io
    shka_Yabloki,Erzhi_Yabloki,Erzhi_Banan):-
    vyskazyvanie(1,Yulchi,Yulchi_Yabloki),
    vyskazyvanie(2,Pishta,Pishta_Yabloki,Pishta_Banan),
    vyskazyvanie(3,Ioshka,Yulchi_Yabloki),
    vyskazyvanie(4,Pishta,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan),
    vyskazyvanie(6,Ioshka,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan),
    vyskazyvanie(7,Yulchi,Ioshka_Banan,Pishta_Banan),
    vyskazyvanie(8,Pishta,Yulchi_Yabloki),
    vyskazyvanie(9,Erzhi,Ioshka_Yabloki),
    vyskazyvanie(10,Ioshka,Ioshka_Yabloki),
    vyskazyvanie(11,Erzhi,Pishta_Banan,Pishta_Yabloki),
    vyskazyvanie(12,Ioshka,Ioshka_Banan),
    vyskazyvanie(13,Yulchi,_,_),
    vyskazyvanie(14,Pishta,_,_).

    goal
    vyyasnit(Yulchi_Yabloki,Yulchi_Banan,Pishta_Banan,Pishta_Yabloki,Ioshka_Banan,Io
    shka_Yabloki,Erzhi_Yabloki,Erzhi_Banan).
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Да, довольно непростая задача...
     
Загрузка...
Похожие Темы - Помогите решить задачу
  1. GREED
    Ответов:
    1
    Просмотров:
    536
  2. vovanabali
    Ответов:
    0
    Просмотров:
    534
  3. merrs
    Ответов:
    1
    Просмотров:
    1.310
  4. Kugotovr23
    Ответов:
    1
    Просмотров:
    1.283
  5. mregor
    Ответов:
    0
    Просмотров:
    911
Статус темы:
Закрыта.

Поделиться этой страницей