Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
| Руслан |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Руслан Репутация: 0 |
Ребяты, нужно написать программу, которая бы решала Силлогизмы, самые обыкновенные (хотя бы) с двумя посылками. Не могу разработать алгоритм! Может кто-нить может подсказать что по этому поводу, а то ощущаю себя полным дураком!
|
![]() ![]() |
| Michael_Rybak |
Сообщение
#2
|
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
Цитата Сначала определяешь M, потом S и P. Сразу получаешь фигуру... Это что касается классификации. А вот что касается решения. Силлогизм записываешь в терминах теории множеств. Код Все А суть В - A^B = A - -A^ B пусто Все А не суть В - A^-B = A - -A^-B пусто Некоторые А суть В - A^ B не пусто Некоторые А не суть В - A^-B не пусто Некоторые А суть не В - A^-B не пусто Ни один А не суть В - А^ B пусто Ни один А не суть не В - А^-B = A - A^ B = не пусто Записываешь обе предпосылки в такой форме. Получается, у тебя есть утверждения для (M, P) и для (S, M), а тебе надо для (S, P). Т.е. тебе нужно получить S ^ P, S ^ -P, -S ^ P, -S ^ -P. Для каждого из мы либо скажем, пусто ли оно, либо скажем, что сказать нельзя. Для этого переберем все способы заполнения такой матрицы Код S M P ? 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 В каждой строке мы запишем в четвертом столбике либо "пусто", либо "не пусто", и проверим, чтобы обе предпосылки выполнялись. Например, "не пусто", записанно в пятой строке (1 0 0) означает, что пересечение множеств S, -M и -P - не пусто. Поскольку нас интересует результат сравнения S и P, то, если обе предпосылки выполняются, мы вычисляем S^P, S^-P, -S^P и -S^-P, постоянно накапливая результат. Как проверять, выполняются ли предпосылки, и накапливать результат, лучше сразу посмотреть на примере. Все люди смертны Некоторые ученые люди _______________ Некоторые ученые смертны. S = ученые, M = люди, P = смертны Пусть в переборе сейчас получена такая матрица: Код S M P ? 0 0 0 не пусто 0 0 1 пусто 0 1 0 пусто 0 1 1 не пусто 1 0 0 пусто 1 0 1 не пусто 1 1 0 не пусто 1 1 1 пусто Проверим предпосылки Все люди смертны = M ^ P = M = -М ^ P пусто Некоторые ученые люди = S ^ M не пусто Проверим, что -М ^ P пусто. Выполняем операции так: V берет лучшее из двух ("пусто" хуже "не пусто"). -M ^ P = -M^P^S V -M^P^-S = S^-M^P V -S^-M^P = f(101) V f(001) = "пусто" V "пусто" = "пусто". Проверим, что S ^ M не пусто. S ^ M = S^M^P V S^M^-P = f(111) V f(110) = "пусто" V "не пусто" = "не пусто". Предпосылки выполняются. Вычисляем S^P, S^-P, -S^P и -S^-P. Рассмотрим, например, S^P. S^P = S^P^M V S^P^-M = S^M^P V S^-M^P = f(111) V f(101) = "пусто" V "не пусто" = "не пусто". Итак, только что получен результат: существует возможность того, что предпосылки выполняются, и S^P не пусто. Если потом, для других вариантов заполнения матрицы (всего их 2^8), будет получен результат, существует возможность того, что предпосылки выполняются, и S^P пусто, это будет означать, что из данного силлогизма нельзя однозначно сказать, пусто ли S^P. То же самое проделываем для S^-P, -S^P и -S^-P. В результате получаем выводы, которые толкуем по той же таблице: Код Все А суть В - A^B = A - -A^ B пусто Все А не суть В - A^-B = A - -A^-B пусто Некоторые А суть В - A^ B не пусто Некоторые А не суть В - A^-B не пусто Некоторые А суть не В - A^-B не пусто Ни один А не суть В - А^ B пусто Ни один А не суть не В - А^-B = A - A^ B = не пусто Твой препод довольно крут, если ему это всё (с классификацией) писать часа 3 ;) Может он все таки хочет чтобы ты просто всё if'ами расписал? Это будет проще. |
Руслан Логическая игра Кэрролла! 7.03.2007 21:41
Michael_Rybak Формализовать их сначала надо. Ты ж не будешь сема… 7.03.2007 23:06
Руслан
Тебе наверное определенный вид силлогизмов надо р… 8.03.2007 10:54
Michael_Rybak Перечитай мое сообщение и примени его к своему при… 9.03.2007 7:54
Руслан Вот это я понимаю,
Ввод ведеться следующим образом… 9.03.2007 12:57
Michael_Rybak http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%....83.D… 9.03.2007 17:59
Руслан Спасибо, буквально открыл глаза, ща попробую и нап… 9.03.2007 18:55
Руслан ну ты мозг! я то и подумал описывать ифами, а … 9.03.2007 19:44
Michael_Rybak Если ты недавно начал заниматься, то я думаю, преп… 9.03.2007 20:36
Руслан
парсило строки..
Че со строками делало?
И мне н… 9.03.2007 21:51
Michael_Rybak Парсило. Парсило :) Ну разбирало что там в строке … 10.03.2007 4:31
Руслан Программу написал с тупим перебором по 19 верным м… 11.03.2007 21:34
Руслан Пасибо! 10.03.2007 5:20![]() ![]() |
|
Текстовая версия | 6.11.2025 22:22 |