4.5.4. Заключительные замечания
4.5.4. Заключительные замечания
Три решения задачи о восьми ферзях показывают, как к одной и той же задаче можно применять различные подходы. Мы варьировали также и представление данных. В одних случаях это представление было более экономным, в других — более наглядным и, до некоторой степени, избыточным. К недостаткам более экономного представления можно отнести то, что какая-то информация всякий раз, когда она требовалась, должна была перевычисляться.
В некоторых случаях основным шагом к решению было обобщение задачи. Как ни парадоксально, но при рассмотрении более общей задачи решение оказывалось проще сформулировать. Принцип такого обобщения — стандартный прием программирования, и его можно часто применять.
Из всех трех программ третья лучше всего показывает, как подходить к общей задаче построения структуры из заданного множества элементов при наличии ограничений.
Возникает естественный вопрос: " Какая из трех программ наиболее эффективна?" В этом отношение программа 2 значительно хуже двух других, а эти последние — одинаковы. Причина в том, что основанная на перестановках программа 2 строит все перестановки, тогда как две другие программы способны отбросить плохую перестановку не дожидаясь, пока она будет полностью построена. Программа 3 наиболее эффективна. Она избегает некоторых арифметических вычислений, результаты которых уже сразу заложены в избыточное представление доски, используемое этой программой.
Упражнение
4.7. Пусть поля доски представлены парами своих координат в виде X/Y, где как X, так и Y принимают значения от 1 до 8.
(а) Определите отношение ходконя( Поле1, Поле2), соответствующее ходу коня на шахматной доске. Считайте, что Поле1 имеет всегда конкретизированные координаты, в то время, как координаты поля Поле2 могут и не быть конкретизированы. Например:
?- ходконя( 1/1, S).
S = 3/2;
S = 2/3;
no (нет)
(b) Определите отношение путьконя( Путь), где Путь — список полей, представляющих соответствующую правилам игры последовательность ходов коня по пустой доске.
(с) Используя отношение путьконя, напишите вопрос для нахождения любого пути, состоящего из 4-x ходов, и начинающегося с поля 2/1, а заканчивающегося на противоположном крае доски (Y = 8). Этот путь должен еще проходить после второго хода через поле 5/4.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Заключительные замечания
Заключительные замечания В последних главах описываются и демонстрируются на примерах несколько технологий, предназначенных для достижения одной цели: максимально эффективного использования базы данных для экономии денежных средств. Использование новых технологий
Типы, характеризуемые значениями, и ссылочные типы: заключительные замечания
Типы, характеризуемые значениями, и ссылочные типы: заключительные замечания Чтобы завершить обсуждение данной темы, изучите информацию табл. 3.8, в которой приводится краткая сводка основных отличий между типами, характеризуемыми значением, и ссылочными типами.Таблица
Заключительные замечания об индексаторах
Заключительные замечания об индексаторах Чтобы получить настоящую экзотику, вы можете создать индексатор, который имеет множество параметров. Предположим, что у нас есть пользовательская кол-лекция, которая хранит элементы в двумерном массиве. В этом случае вы можете
Заключительные замечания о перегрузке операций
Заключительные замечания о перегрузке операций Вы могли убедиться в том, что C# обеспечивает возможность построения типов, по-своему отвечающих на встроенные всем известные операции. Перед тем как перейти к непосредственной модификации классов для поддержки такого
4.5.4. Заключительные замечания
4.5.4. Заключительные замечания Три решения задачи о восьми ферзях показывают, как к одной и той же задаче можно применять различные подходы. Мы варьировали также и представление данных. В одних случаях это представление было более экономным, в других — более наглядным и,
16.4. Заключительные замечания
16.4. Заключительные замечания Нашего простого интерпретатора было вполне достаточно для того, чтобы проиллюстрировать некоторые идеи, лежащие в основе программирования в терминах образцов. Применение этого интерпретатора для более сложных приложений потребовало бы
Заключительные слова
Заключительные слова Статистика, которую ведет CERT, показывает, что количество нарушений безопасности более чем удваивается каждый год. По данной статистике, число инцидентов возросло с 3934 в 1998 году до 9859 в 1999 году, а затем до 211 7569 в 2000 году и до 52 658 в 2001 году. Только за
Заключительные слова
Заключительные слова Во многих компаниях компьютерная безопасность сводится к наличию брандмауэра. Ну ладно, вам так понравилась эта интернетовская штучка, и вам не терпится подключиться к сети. Вы направляете всю свою энергию на выбор правильного брандмауэра и на
Заключительные слова
Заключительные слова Если вы генеральный директор и надеетесь, что ваша интранет будет в безопасности и не проверяете ее, то вас может ждать большой сюрприз. Угрозы благополучию предприятий продолжают возрастать и требуют все более высоких уровней защиты корпоративных
Заключительные слова
Заключительные слова Сегодня в насыщенной различными видами связи деловой среде внешние подключения стали такой же частью бизнес-структуры, как телефоны, круглосуточная доставка и межофисные низкие перегородки. На то, что ваш партнер расставил все средства защиты,
Заключительные слова
Заключительные слова В мире компьютеров время — это все! Время вычислений процессора, время доступа памяти, время появления на рынке и т. д. — все протекает невероятно быстро. За 30 миллисекунд сигнал, летящий со скоростью света, может пройти расстояние от одного
Заключительные слова
Заключительные слова Оценка риска является одной из важнейших и наиболее игнорируемых задач в области безопасности. Как ни печально, но это действительно так. Вы должны понять, что у вас есть и что из вашего имущества заслуживает охраны.По данным опроса Global Security Survey,
Заключительные слова
Заключительные слова Когда дело касается обеспечения безопасности, то роли и обязанности должны быть четко определены. Так как каждая компания имеет свою структуру технической поддержки, то эти роли и обязанности могут быть различными (даже в соседних подразделениях) в
Заключительные слова
Заключительные слова В рассказанной истории руководители обеих групп должны были помогать решению проблемы — для этого руководство и существует. К сожалению, эти менеджеры «зависли» на своих политических амбициях. Вдохновляйте ваших менеджеров на то, чтобы они
Заключительные слова
Заключительные слова Аутсорсинг быстро становится стратегией корпораций нашего десятилетия. Если ваша компания не воспользовалась аутсорсингом для каких-либо своих нужд, то велика вероятность, что она скоро это сделает.Перед тем как проводить какую-либо
Заключительные слова
Заключительные слова Ежедневно миллионы предпринимателей вкладывают свои надежды и мечты в почтовые послания, которые затем отправляют в плавание по Интернету. Если они делают это, не применяя шифрования, то, следовательно, забывают о всякой осторожности.Применение