Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Составление последовательности пар цифр 
V
    Опции темы
Rrader
  Дата 7.7.2008, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: нет
Всего: 191



Здравствуйте! smile 

Есть произвольное количество пар цифр (цифры изменяются от 1 до 8). Нужно определить - возможно ли составить из этих пар последовательность, по принципу домино (т.е. в паре числа можно переставлять). Если возможно, то какую.

Например:

(1,4)
(4,7)
(7,5)
(0,0)
(0,6)
(1,6)

Составить можно такую последовательность: (0,0) - (0,6) - (6,1) - (1,4) - (4,7) - (7,5)

Но вот не могу сообразить хороший алгоритм, как это определить...



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Akina
Дата 7.7.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Можно выстроить цепь, если:
1) Цифр, количество которых в наборе нечетно, не более 2 (т.е. 0 или 2).
2) Для любой цифры, для которой в наборе есть "дубль", есть по крайней мере один "не-дубль".


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ln78
Дата 7.7.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: нет
Всего: 15



Akina, набор (1,2), (1,3), (2,3), (5,6) твоим требованиям удовлетворяет?
PM MAIL   Вверх
Akina
Дата 7.7.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Ln78, логично. Нужно вводить требование "нераспадения на подмножества".


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
d06osipov
Дата 7.7.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 1.11.2006

Репутация: нет
Всего: нет



Цитата(Akina @  7.7.2008,  08:03 Найти цитируемый пост)
Можно выстроить цепь, если:
1) Цифр, количество которых в наборе нечетно, не более 2 (т.е. 0 или 2).
2) Для любой цифры, для которой в наборе есть "дубль", есть по крайней мере один "не-дубль". 

Не верно, по крайней мере так может быть два цикла. Пример:
(1 2)-(2 3)-(3 1) (4 5)-(5 6)-(6 4)  сдесь всех цифр чётно и каждой не более двух.

Задача: в точности обход графа. Числа -- вершины.  Если есть пара (n,m), то между вершинами n и m есть ребро. Если у связного графа степени всех вершин чётны, то существует цикл, весь его обходящий, проходящий по каждому ребру по одному разу (это почти то, что нужно, т. о. первое условие, данное Akinой,  необходимо и достаточно вместе со связностью). 

Если есть возможность выделить память в размере O(n), где n --- количество пар, то задача определения связности решается рекурсивно за O(n). Экономней ---- пока не знаю.

PM MAIL   Вверх
Rrader
  Дата 7.7.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: нет
Всего: 191





--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Rrader
  Дата 7.7.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: нет
Всего: 191



Я так понял, нужен алгоритм нахождения пути, в котором задействованы будут все ребра (доминошки). Допустим, у нас такие таблички:

(4 2) - (2 6) - (6 5) - (5 4) - (4 6). В общем случае таблички перемешаны, но как видно, цепь существует.

Я составил граф:

user posted image

Задача решена, додумался! smile 

Это сообщение отредактировал(а) Rrader - 10.7.2008, 14:42


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Alix
Дата 7.7.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: нет
Всего: 23



Вообще граф у тебя интересный: если попадаешь в вершину по одному из ее концов, то выходить можно только из другого. По-идее, обыграть это можно разбив вершины на две и сделав связь между ними. Как-то так:
user posted image
только тогда надо как-то контролировать, чтобы придя в одну вершину выходили из соседней, а не из любой другой, например, сделав связь между ориентированной... хотя не... Подумать надобно ))

Это сообщение отредактировал(а) Alix - 7.7.2008, 16:29


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0836 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.