Algoritm zada4i )
#31
Отправлено 19 октября 2005 - 20:37
ты просто можешь задать данные
и решить сама - своим методом подбора
если есть решение, тогда потом введешь данные в алгоритм, замена переменной... ну и там если регится тоогда, пральвильный алгоритм...
математику знать хорошо надо
особенно приветствуется аналитический склад ума...
#32
Отправлено 19 октября 2005 - 20:44
Он конечно адаптирован под пролог, потому что такого рода задачи на нём и решаются, но я думаю, разобраться можно. Советую посмотреть приводимый там полный код(ссылчка там имеется)
Тебе только расширить туда условия carry с привинченным r(там 1<=r<2)
и newstate ещё state(M3, C3, Boat) добавить.. вроде и всё...
#36
Отправлено 19 октября 2005 - 21:08
типа 9 людей и 7 проглотов...
и решай
не решается - ещё прибавляй...
проглотов пускай останется 7...
или возми мой вариант
naprimer v lodku vmeshaetsja 5max из гих 2 должно грести...
dano 7m 5n
bereg 1 - 5m 3n v lodke 2m 2n - bereg2 2m 2n - lodka obratno 1n - bereg2 2m 1n
bereg 1 - 5m 4n v lodke 3m 2n - bereg2 5m 3n - lodka obratno 2m - bereg2 3m 3n
bereg 1 - 4m 2n v lodke 3m 1n - bereg2 7m 4n - lodka obratno 1m - bereg2 6m 4n
bereg 1 - 1m 1n v lodke 1m 1n - bereg2 7m 5n - lodka oratno 0m 0n
#42
Отправлено 24 октября 2005 - 14:41
-- Строим матрицу переходов М(X*Y*Z).
х - людоеды.
y - миссионеры.
z - лодка слева(L) или справа® (берег)
т.е. определяется конечное число состояний, одно из состояний принимается за начальное и одно или несколько состояний определяются как искомое - терминальное. Каждый элемент матрицы М является тройкой М=(x,y,z) (читать как состояние). Итак, начальное состояние М0=(5,5, L ) и терминальное состояние Мk=(0,0, R ).
-- Заданы правила перехода между группами состояний. Введем понятие действия Д:[u, v]н, где u - число миссионеров в лодке, v - число людоедов в лодке,н - направление движения лодки (R или L).
-- Для каждого М заданы определенные условия допустимости состояний: x >= y;5-x >= 5-y ; u+v <= 2.
-- После этого из текущего М строятся переходы в новые состояния М(2,0)R...(1,1)R ... (0,1)R (обратите внимание на положение лодки).
-- Убираются все М, где наблюдется нарушение условий допустимости (миссионеры будут съедены). После первого хода остается новых состояния.
-- Далее использую бактрэкинг находится наибольший шаг связаного графа.
И всё. И пость хоть миллион надо будет перевести.
Добавлено в [mergetime]1130157680[/mergetime]
Warvick, афтару программа не нужна. Афтору нужна теория.
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#43
Отправлено 24 октября 2005 - 16:41
Ну я всё себе так и представлял. Сказал бы сразу что с помощью графа тоже решал бы , а то я уже слюни распустил на нетривиальное решение.
А программу интересно уже мне реализовать, вот только с IDE под Яву разберусь и в путь.. )
только
не понял.u+v <= 2
Сообщение изменено: Warvick (24 октября 2005 - 16:44 )