Логическая задача про карты не в своем уме - Prolog
Формулировка задачи:
Помогите решить логическую задачу:
«Тройка» думает, что «Туз» не в своём уме. «Четвёрка» думает, что «Тройка» и «Двойка» обе не могут быть не в своём уме. «Пятёрка» думает, что «Туз» и «Четвёрка» либо оба не в своём уме, либо оба в своём уме. «Шестёрка» думает, что «Туз» и «Двойка» оба в своём уме. «Семёрка» думает, что «Пятёрка» не в своём уме. «Валет» думает, что «Шестёрка» и «Семёрка» обе не могут быть не в своём уме. В своём ли уме «Валет»?
Весь мозг уже себе выел)Заранее большущее спасибо.
Решение задачи: «Логическая задача про карты не в своем уме»
textual
Листинг программы
state(1). %в своем уме state(0). %не в своем уме mind(1, L):-member(tuz/0,L). %туз не в своем уме mind(2, L):-member(troika/1,L) ; member(dvoika/1,L).%или тройки или двойка в своем уме ... check_mind(1, N, L):-mind(N,L). %если автор гипотезы в своем уме, то она верна check_mind(0, N, L):-not(mind(N,L)). %если не в своем, то не верна solve(L):- L=[dvoika/A, troika/B, chetverka/C, pyaterka/D, shesterka/E, semerka/F, valet/G, tuz/H], state(A),.....,state(H), check_mind(B, 1, L), %проверяем гипотезу тройки ....
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д