Логическая задача про карты не в своем уме - Prolog

Узнай цену своей работы

Формулировка задачи:

Помогите решить логическую задачу: «Тройка» думает, что «Туз» не в своём уме. «Четвёрка» думает, что «Тройка» и «Двойка» обе не могут быть не в своём уме. «Пятёрка» думает, что «Туз» и «Четвёрка» либо оба не в своём уме, либо оба в своём уме. «Шестёрка» думает, что «Туз» и «Двойка» оба в своём уме. «Семёрка» думает, что «Пятёрка» не в своём уме. «Валет» думает, что «Шестёрка» и «Семёрка» обе не могут быть не в своём уме. В своём ли уме «Валет»? Весь мозг уже себе выел)Заранее большущее спасибо.

Решение задачи: «Логическая задача про карты не в своем уме»

textual
Листинг программы
  1. state(1). своем уме
  2. state(0). %не в своем уме
  3.  
  4. mind(1, L):-member(tuz/0,L). %туз не в своем уме
  5. mind(2, L):-member(troika/1,L) ; member(dvoika/1,L).%или тройки или двойка в своем уме
  6. ...
  7.  
  8. check_mind(1, N, L):-mind(N,L). %если автор гипотезы в своем уме, то она верна
  9. check_mind(0, N, L):-not(mind(N,L)). %если не в своем, то не верна
  10.  
  11. solve(L):-
  12.      L=[dvoika/A, troika/B, chetverka/C, pyaterka/D, shesterka/E, semerka/F, valet/G, tuz/H],
  13.      state(A),.....,state(H),
  14.      check_mind(B, 1, L), %проверяем гипотезу тройки
  15.      ....

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут