|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.03.2018, 22:36 | #1 |
Регистрация: 01.03.2018
Сообщений: 7
|
Задача из "101 головоломка" PROLOG
Здравствуйте. Есть интересная загадка про 13 мышей, её нужно написать на ПРОЛОГЕ:
Все 13 мышей, окружающие кошку, обречены попасть ей на обед. Но кошка желает съесть их в определённом порядке: каждый раз она отсчитывает по часовой стрелке 13-ю, и съедает её. С какой мыши она должна начать, чтобы белая оказалась съеденной последней? В решениях сказано, что нужно начать с мышки, которая возле хвоста. Но очевидно, что нужно осуществить некий перебор событий, начиная с разных мышек и приходя к тому, что белая мышь будет последней съеденной. Как осуществить этот перебор на ПРОЛОГЕ? Ну, или решить по другому. Помогите, пожалуйста. Всем добра и с первым днём весны |
02.03.2018, 14:30 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а это не классическая задача Иосифа Флавия ?
см. Задача Иосифа Флавия или считалка Джозефуса — известная математическая задача с историческим подтекстом. |
02.03.2018, 14:43 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
На прологе не, ни капли. Могу подкинуть делфийское решение для любого количества мышей и шага обреченности ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
02.03.2018, 17:18 | #4 |
Регистрация: 01.03.2018
Сообщений: 7
|
|
02.03.2018, 17:22 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 02.03.2018 в 17:29. |
03.03.2018, 02:28 | #6 |
Регистрация: 01.03.2018
Сообщений: 7
|
Java
Переписал на Java. В общем здесь захардкодил под свою лог.задачу, индекс мыши с который нужно начать(killIdx) = 6. Если кто вдруг шарит джаву и/или пролог, помогите это осуществить на нём.
Код:
Код:
|
15.03.2018, 20:09 | #7 |
Регистрация: 01.03.2018
Сообщений: 7
|
Привет ещё раз. Сделал прошлую задачу, теперь мне нужно реализовать новую и тут я вообще без понятия как это сделать.
Помогите, пожалуйста. Муха на занавеске На оконной занавеске с рисунком в клетку уселись 9 мух. Случайно они расположились так, что никакие две мухи не оказались в одном и том же ряду — ни прямом, ни косом (рис.) Спустя несколько минут три мухи сменили места и переползли в соседние, незанятые клетки; остальные 6 не двигались. Но забавно: хотя три мухи перешли на другие места, все 9 снова оказались размещенными так, что никакая пара не находилась в одном прямом или косом ряду. Можете ли вы сказать, какие три мухи и куда пересели? Ответ: a6->b6, b3->a4, d4->d3, но нужно реализовать на SWI Prolog. |
22.03.2018, 12:24 | #8 |
Регистрация: 01.03.2018
Сообщений: 7
|
Если есть идеи, как это возможно решить, просьба поделиться ими, пожалуйста
|
22.03.2018, 12:31 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В циклах прямым перебором не катит? Вполне решаемо - вариантов выборки трех мух 74, у трех мух вариантов новых клеток 512 или меньше, если муха на краю или достаточно близко от другой.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
22.03.2018, 12:58 | #10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
одна(ЛЮБАЯ) по диагонали(любой из доступных). Ответ: a6->b6, b3->a4, d4->d3 другая с вновь занятой горизонтали на освободившуюся Ответ: a6->b6, b3->a4, d4->d3 третья с вновь занятой вертикали также на освободившуюся Ответ: a6->b6, b3->a4, d4->d3. число возможных вариантов <=9(мух)*4(диагонали по максимуму)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 22.03.2018 в 13:04. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" | Бахтиёр1916 | Windows | 1 | 05.04.2017 12:53 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" | Sandakan01 | Помощь студентам | 1 | 24.02.2016 03:20 |