![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Диана |
|
|||
|
Unregistered |
Программисты!
Помогите решить задачу( практика в универе)! Написать программу, которая осуществляет обход любой доски MxN шахматным конем. Я знаю языки С, С++, Pascal, а вот методы не практиковала. Надо, чтобы прога работала быстро и была красиво оформлена. Читала, что можно попробовать алгоритм поиска кратчайшего пути на графе, но о графах я не знаю ничего+ Преподаватель любит Visual C, который мы не изучали... Вопрос в том, стоит ли мучать теорию графов и Visual C? На каком языке лучше писать, чтобы и красиво было(это ценится), и работало нормально? Может, кто-то писал эту прогу и может поделиться кодом, если, конечно, не жаль... Спасибо огромное! Диана |
|||
|
||||
| Akina |
|
||||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
да
не обязательно
абсолютно все равно (не, только без фанатизма, Клиппер есссно отпадает).
При чем тут кратчайший путь? у тебя же обход графа... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||||
|
|||||||||
| Guest |
|
|||
|
Unregistered |
Спасибо, но про графы я только понаслышке знаю, поэтому ошиблась...
Не выходит прога у меня. |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
|
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Вероятно обход всех полей либо максимально возможного их количества. Не исключено требование возврата в исходную точку (замкнутый обход).
Глубина рекурсии = кол-ву полей, ширина = 8... не думаю что это будет быстро, особенно на больших досках... впрочем на больших досках как раз это скорее оптимум, несмотря на длину... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
Про конец похода... скорее всего поход заканчивается, когда нет больше возможных ходов... |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 1 Всего: 71 |
Где то видел теорию, там говориться, что надо ставить коня на поле, от куда можно сделать наименьшее количество ходов.
|
|||
|
||||
| Амортизатор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 17.4.2005 Где: в Караганде Репутация: 1 Всего: 8 |
ИМХО, если пользоваться грубым перебором, займет много времени. Нельзя ли разработать алгоритм, позволяющий отбрасывать на каждом шаге опр кол-во ходов?
-------------------- Поехали! |
|||
|
||||
| Диана |
|
|||
|
Unregistered |
Нужно обойти конем любое поле с заданной позиции.
Попасть в каждую клетку по одному разу. Не более.
Это правило Варнсдорфа. Но работает (читала) на досках с 5х5 до 76х76 и когда ходить с углового поля. Не подходит сюда. Рекурсия отпадает- в тупик-то конь не зайдет, но долго очень думать будет, а если доска 100х200 - будет совсем весело. Тормоз. Рекурсия-неплохо для обычной шахматной доски (типа олимпиадная задача для школьников).Тогда проблем нет. А то, что у меня... +интерфейс красивый... Переподаватель любит... |
|||
|
||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Это всего лишь эвристика. Которая, кстати, даже на поле 8*8 может загнать в тупик. Используется только для определения порядка перебора ходов в рекурсивном поиске (если стоИт задача найти хотя бы один путь, а не все возможные).
Нет, только конечные отсечения. Или частные случаи.
В тупик - запросто. А слегка ускорить алгоритм можно проверкой количества возможных ходов с каждого из непройденных полей. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 4 Всего: 484 |
||||
|
||||
| AntonSaburov |
|
||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Эта эвристика работает на полях от 5х5 до 70х70 - я сам студентам такое даю. Вот программа - у нас работает.
|
||||
|
|||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 1 Всего: 71 |
Так, а если еще попробовать скомбинировать данный вариант с рекурсией, скажем если где - то встречаются несколько равносильных ходов, то перебирать все?
|
|||
|
||||
| Диана |
|
|||
|
Unregistered |
Спасибо!
Попробую запустить. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Повторяю. На доске 8*8 существует (и не одно) полностью удовлетворяющее этим условиям прохождение, при котором конь попадает в тупик. Абсолютно достоверно. Обсуждалось в "Наука и жизнь" годах в 70-х, с анализом и конкретным примером тупика. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |