Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
7 / 7 / 2
Регистрация: 25.03.2013
Сообщений: 73
1

Вывести все возможные способы расстановки n тур (бьют по вертикали или горизонтали) на шахматной доске

26.04.2014, 07:53. Показов 808. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача:
нужно вывести все возможные способы расстановки n тур (бьют по вертикали или горизонтали) на шахматной доске (n*n). Задачу нужно решить методом поиска с возвращением. Желательно разбить всё по процедурам и функциям как-можно детальнее. Учитель показывал алгоритмом, но не запомнил его. Там было, на примере n=3: есть 2 указателя (x,y) , сначала они x=1 y=1 , проверяем ячейку [1,1] (отдельная функция), если можно поставить, то ставим, дальше x на единицу увеличить, а y:=1 , дальше перебираем: [2,1], не подходит, увеличиваем y на 1, [2,2], подходит ставим, x:=x+1, y:=1. Перебираем и ставим на [3,3] , дальше, когда выходим указателем x за пределы доски(3х3), то есть когда после x:=x+1 x стает 4 выводим получившеюся последовательность просто выводя номера строк или столпцов , в которых есть тура. Далее ставим x:=x-1, а y на единицу больше, чем значение y туры в столпце x, то есть (3,3), а y:=3+1=4. Проверяем, можно ли поставить на [x=3,y=4], нельзя, то х:=х-1=2, а y в столпце x=2 над турой, то есть y=3, проверили (2,3) , там уже забыл. Помогите, пожалуйста!
Спасибо всем за помощь!

Добавлено через 9 часов 28 минут
Up!

Добавлено через 8 часов 3 минуты
Подскажите продолжение алгоритма или ссылку на него.

Добавлено через 1 час 37 минут
up!

Добавлено через 13 часов 43 минуты
Ап!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.04.2014, 07:53
Ответы с готовыми решениями:

Получите все расстановки 8 ладей на шахматной доске
Получите все расстановки 8 ладей на шахматной доске , при которых ни одна ладья не угрожает другой

Получить все расстановки 8 ладей на шахматной доске, при которых ни одна ладья не угрожает другой
Помогите решить 10 задач а то мне уже все мозги вынесли эти задачи ну решите пожалуйста сколько...

Перечислить все расстановки N ферзей на шахматной доске NxX, при которых они не бьют друг друга
Задача: Перечислить все расстановки N ферзей на шахматной доске NxX, при которых они не бьют друг...

На шахматной доске расставлены три фигуры. Определить бьют они друг друга или нет
На шахматной доске расставлены три фигуры. Используя стандартные правила игры узнать бьют они друг...

0
26.04.2014, 07:53
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2014, 07:53
Помогаю со студенческими работами здесь

Получить все расстановки 8 ладей на шахматной доске
Написать программу, которая получает все расстановки 8 ладей на шахматной доске, при которых ни...

На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон – по
Помогите решить проблему error C2668: fabs: неоднозначный вызов перегруженной функции На...

Расставить 8 ферзей на шахматной доске 8 на 8, которые не бьют друг друга
Нужно написать программу которая расставляет на шахматной доске 8 ферзей, которые не бьют друг...

Заданы координаты короля и ладьи на шахматной доске определить бьют ли фигуры друг друга
заданы координаты короля и ладьи на шахматной доске определить бьют ли фигуры друг друга весь код в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как работать с Kafka в Go (Golang)
bytestream 22.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки событий и интеграции микросервисов. Эта система, изначально. . .
Как использовать RabbitMQ в Go (Golang)
bytestream 22.01.2025
RabbitMQ представляет собой надежный и широко используемый брокер сообщений, который играет ключевую роль в построении современных распределенных систем и микросервисной архитектуры. В основе работы. . .
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач. . . .
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru