- •Рецензия
- •«Алгоритмы и алгоритмические языки»
- •Задание
- •«Алгоритмы и алгоритмические языки»
- •Пояснительная записка
- •«Алгоритмы и алгоритмические языки»
- •1. Алгоритмы решения задачи для доски 8*8.
- •1.1Рекуррентный способ:
- •1.2. Алгоритмы Лас-Вегаса или Алгоритм поиска с возвратом:
- •2. Алгоритмы решения задачи доски n*n.
- •2.1. Рекуррентный алгоритм:
- •2.2. Алгоритмы Лас-Вегаса или Алгоритм поиска с возвратом:
- •2.3. Эвристический алгоритм:
Пояснительная записка
на курсовую работу по курсу
«Алгоритмы и алгоритмические языки»
на тему
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
Автор работы _______________ студент гр. ________ ____________________
(дата подпись) (фамилия инициалы)
Руководитель работы ______________ ___________ ___________________
(дата подпись) (должность) (фамилия инициалы)
Работа защищена _____________ с оценкой ____________________________
(дата)
Члены комиссии ______________ ______________ ____________________
(дата подпись) (должность) (фамилия инициалы)
______________ ______________ ____________________
(дата подпись) (должность) (фамилия инициалы)
______________ ______________ ____________________
(дата подпись) (должность) (фамилия инициалы)
Тула 20___
Введение
Формулировка задачи:
Задача о восьми ферзях— широко известная задача по расстановке фигур на шахматной доске. Исходная формулировка: «Какими способами можно расставить на доске восемь ферзей так, чтобы они не угрожали друг другу, т.е. никакие два не стояли на одной вертикали, горизонтали и диагонали и сколько таких способов?» Очевидно, больше восьми мирных ферзей (как и ладей) на обычной доске расставить невозможно. Найти какое-нибудь расположение восьми ферзей, не угрожающих друг другу, легко (на рисунке представлены четыре искомые расстановки). Значительно труднее подсчитать общее число расстановок и вывести их, в чем, собственно, и состоит задача.
В более «математическом» виде задача может быть сформулирована несколькими способами, например, так: «Заполнить матрицу размером 8×8 нулями и единицами таким образом, чтобы сумма всех элементов матрицы была равна 8, при этом сумма элементов ни в одном столбце, строке или диагональном ряде матрицы не превышала единицы».
История задачи:
Любопытно, что многие авторы ошибочно приписывали эту задачу и ее решение самому К. Гауссу. На самом деле, она была впервые поставлена в 1848 г. немецким шахматистом М. Беццелем. Доктор Ф. Наук нашел 60 решений и опубликовал их в газете «Illustrierte Zeitung» от 1 июня 1850 г. Лишь после этого Гаусс заинтересовался задачей и нашел 72 решения, которые он сообщил в письме к своему другу астроному Шумахеру от 2 сентября 1850 г. Полный же набор решений, состоящий из 92 позиций, получил все тот же Ф. Наук. Он привел их в упомянутой газете от 21 сентября 1850 г. Эта хронология установлена известным немецким исследователем математических развлечений В. Аренсом.
Строгое доказательство того, что 92 решения исчерпывают все возможности, было получено лишь в 1874 г. английским математиком Д. Глэшером (при помощи теории определителей). Забегая вперед, отметим, что существенных решений (не совпадающих при отражениях и поворотах доски) имеется только двенадцать.
Цель задания:
Конечная цель, поставленная перед решающим задачу, может формулироваться в нескольких вариантах:
1) Построить одно, любое решение задачи.
2) Аналитически доказать, что решение существует.
3) Определить количество решений.
4) Построить все возможные решения.
5) Одна из типовых задач по программированию алгоритмов перебора: создать компьютерную программу, находящую все возможные решения задачи.
Иногда постановка задачи требует нахождения способов расстановки N ферзей на доске N×N клеток (при этом при 1<N<4 задача не имеет решения).
В работе мною подробно рассмотрен классический “шахматный” случай для доски 8*8. А позже адаптированы возможные алгоритмы на доску размером N*N.
