Содержание
- 2. ЗАДАЧА № 93. МИРНЫЕ ФЕРЗИ Дано число N. Определите, сколькими способами можно расставить на доске N×N
- 3. КЛАССИЧЕСКИЙ СЛУЧАЙ: 8×8 Общее число возможных расположений 8 ферзей на 64-клеточной доске равно 4 426 165
- 4. КЛАССИЧЕСКИЙ СЛУЧАЙ: 8×8 Генерируя перестановки, которые являются решениями задачи о восьми ладьях и затем проверяя атаки
- 5. КЛАССИЧЕСКИЙ СЛУЧАЙ: 8×8 Один из типовых алгоритмов решения задачи — использование поиска с возвратом: первый ферзь
- 6. ПОДЗАДАЧА: Даны координаты двух ферзей. Определите, бьют ли они друг друга. Входные данные: четыре числа. Выходные
- 7. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ: Ферзи бьют друг друга, если они находятся: на одной горизонтали; на одной вертикали; на
- 8. РЕАЛИЗАЦИЯ (PYTHON): def check(x1, y1, x2, y2): if y1 == y2 or x1 == x2 or
- 9. РЕКУРСИВНАЯ ФУНКЦИЯ. Необходимо хранить текущую (промежуточную) «хорошую» расстановку части ферзей. Как это сделать? завести двумерный массив;
- 10. РЕКУРСИВНАЯ ФУНКЦИЯ. Будем рекурсивно передавать в функцию текущее положение ферзей. Крайний случай? Длина массива равна N.
- 11. РЕАЛИЗАЦИЯ РЕКУРСИВНОЙ ФУНКЦИИ: def rec(prefix): global count if len(prefix) == n: count += 1 return for
- 12. ОСНОВНАЯ ПРОГРАММА: n = int(input()) count = 0 rec([]) print(count)
- 13. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ: добавить визуализацию решений; заработать миллион долларов: Компьютерные программы перестают справляться с решением
- 14. ЗАДАЧА № 94. МИРНЫЕ ФЕРЗИ (БЕЗ ПОВОРОТОВ И ОТРАЖЕНИЙ) Дано число N. Определите, сколькими способами можно
- 15. 12 УНИКАЛЬНЫХ (БЕЗ ПОВОРОТОВ И ОТРАЖЕНИЙ) РЕШЕНИЙ ЗАДАЧИ «МИРНЫЕ ФЕРЗИ» НА ДОСКЕ 8 × 8
- 17. Скачать презентацию