![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 23
|
![]()
Прошу очень о помощи. Вот по программированию задали задачку:
Нарисовать домик, не отрывая карандаша от листа бумаги и не проводя одну и ту же линию дважды. Требуется найти все возможные варианты рисования домика, начиная с левого нижнего угла. Нумерация вершин дома приведена на рисунке. Например, следующая последовательность должна быть выдана на экран 153125432.(Рисунок ниже) Среда Microsoft Visual C++ 6.0. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 23
|
![]()
Сначала, я задаю матрицу смежности:
01101 10101 11011 00101 11110 Код:
Код:
Помогите... |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 23
|
![]()
Ну неужели никто не может помочь?...
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
Видимо, никто не может понять сути вопроса.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 23
|
![]()
Я задала, что бы по циклу программа начиная с первой вершины по матрице смежности смотрела дальше, соединена ли она с другими, если да, то единички убираются(поскольку мы проходим это ребро) но вместо того, что бы перейти к той вершине, которую программа выбрала, она продолжает идти дальше( поскольку идет цикл). Мне нужна помощь в том, что бы она переходила к вершине, которую выбрала.
Например: Изначально в программе первая вершина выбрана. Далее по матрице смежности выбирается ребро по которому идем дальше. Например ребро, соединяющее 1-ю и -ю вершины. И по логике дальше нужно выбирать ребро для второй вершины, но программа продолжает идти по этой же вершине... Вот в чем проблема... |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 168
|
![]()
Может поможет:
153125432 = 9 цифр, то есть если цифр>9 или цифр<9 то не подходит. то есть обязательно нужно совершить девять шагов. Можно где то в цикле проверять на прохождение уже пройденного пути таким способом: 153125432 нет совпадений в переходах значит подходит. 15315 совпадение значит не подходит, пропускаем этот вариант. Сейчас сама попробую сделать если получиться отпишу. ![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 168
|
![]()
А вот так нельзя? поверька...
сумма верного хода чисел равна 26 153125432 = 26 253215431 = 26 153125432 = 26 делаем циклами любые варианты и проверяем нет ли совпадений типо 15315 ![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 168
|
![]()
и еще проверяем строку str = strlen(153125432) на длинну... str = 9
![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
![]()
Тут рационально делать рекурсией.
Код:
Можно еще оптимизировтаь убрать переменную pos и работать только с sq, но это переделывать лень 8)
Ёж птица гордая, пока не пнешь не полетит.
Последний раз редактировалось Ezhuk; 07.05.2011 в 20:03. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 23
|
![]()
Хм... спасибо, попробую)
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Basic. Нарисовать домик. Работа с файлом | BopCuHka | Помощь студентам | 1 | 18.05.2010 23:09 |