Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кубик-Рубика 
:(
    Опции темы
Сашок
Дата 1.7.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Надо писать курсовик. Вот решил задуматься о нем. Наткнулся на тему: определение валидности раскрасски кубика-Рубика, хочу попробовать. Подкиньте, пожалуйста, идеи как лучше реализовывать кубик, какой метод решения задачи наиболее приемлем. Видимо тупой перебор не пойдет, ибо слишком много состояний. Заранее благодарен.
PM MAIL   Вверх
Dobermann
Дата 1.7.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Сашок @  1.7.2008,  14:31 Найти цитируемый пост)
какой метод решения задачи наиболее приемлем

Даже понятия не имею  smile 
Цитата(Сашок @  1.7.2008,  14:31 Найти цитируемый пост)
определение валидности раскрасски кубика-Рубика

Кубик-рубик нужно ведь на трех осях отобразить, чтоб хотя бы с расцветкой помучаться  smile  smile 
На паскале такое возможно?!?!?! (Я не имею ввиду массив типа [1..5,1..5,1..5] of color и заполнение его SetLength'ом  smile )

PM   Вверх
deswars
Дата 2.7.2008, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можна попробовать сохранять цвета в масиве [1..3,1..3,1..6] of ...
PM MAIL   Вверх
Сашок
Дата 2.7.2008, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я представил кубик в виде массива 6-ти массивов 3х3. Они как бы представляют развертку куба. Описал ЭП над ним. Главная проблема заключается в том что очень сомнителен сбособ тупого перебора, ибо перебрать 18^23 вариантов очень затратно. Конечно некоторые случаи можно опустить, например 4 последоватьельных одинаковых действия, или действие, а за ним обратное к нему, но это не слишком сильно уменьшит число вариантов...
PM MAIL   Вверх
Dobermann
Дата 2.7.2008, 10:57 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я думал попутаю, когда выводил статистику о решении задачи о ханнойских башнях  smile 
Цитата(Сашок @  2.7.2008,  10:17 Найти цитируемый пост)
 6-ти массивов 3х3

Было бы проще, зная что противоположные стороны плоскостей симметричны ( ну всмысле еслиб цвета были противоположно-одинаковыми ), а так эта затея врятли без GUI и API получится...

PM   Вверх
Сашок
Дата 2.7.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



На сколько я понял имеется ввиду график юзер интерфейс и апликэйшен программинг интерфасе. Но прога всего лишь должна по заданной раскрасске выдать true/false. Допустим что ввод раскрасски произведен в текстовом режиме, те цвет:=цифра 1..6.
Не главное сделать менюшку и раскрасску красивую, а главное проверить валидность.
PM MAIL   Вверх
Dobermann
Дата 2.7.2008, 19:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Сашок @  2.7.2008,  11:26 Найти цитируемый пост)
На сколько я понял имеется ввиду график юзер интерфейс и апликэйшен программинг интерфасе.

Да.
Ну к примеру ты расскрасишь его, а что дальше?!?!?! Какая валидность??? Валидность чего???

_______________
|      1          1         |
|      1          1         |
|___1_____1_ ___|
|      1          1         |
|      1          1         |
|___1_____1__ __|
|      1          1         |
|      1          1         |
|___1_____1_ ___|

И в общем смысле ты собираешься вручную задавать по 9 цветов 6 раз smile  smile  smile 
А может его еще и собрать)))))))))) smile  smile  smile  smile  smile 

PM   Вверх
Сашок
Дата 2.7.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Под валидностью я подразумеваю возможность собрать кубик в его первоначальное(собранное) состояние из заданного. 
PM MAIL   Вверх
mr.Anderson
Дата 2.7.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Dobermann, не неси, пожалуйста, ерунду. GUI и API здесь ну совершенно не обязательны. Ты хоть знаешь, что за этими терминами кроется, особенно за вторым? Если знаешь, то мне странно, что ты их употребил в данной теме.

Сашок, перечитал тему несколько раз, но все равно не до конца понял, что должна делать программа. Что значит "возможность собрать кубик в первоначальное состояние". Если этот кубик построен по правилам того самого кубика (тупо звучит, я знаю), то кубик всегда можно собрать. Значит, насколько я понимаю, программа должна определять, допустима ли заданная расцветка кубика. Так? Если так, то нужно порыть алгоритмы сборки кубика-рубика.

Добавлено через 2 минуты и 44 секунды
Вот нарыл общую теорию по кубику: http://ravlyk.narod.ru/rubic/state/index.html

Добавлено через 5 минут и 2 секунды
Вот еще линк. http://www.cubemir.narod.ru/kaksobrat/moj_...d/vvedenie.html

По обоим указанным линкам есть теория + алгоритм сборки. Твоя задача по сути сводится к реализации этого алгоритма и последующей проверке на заданной расцветке.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Сашок
Дата 2.7.2008, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да. Так и есть. Я уже много всяких алгоритмов накопал для сборки. Т.е. если заданный кубик не собрать то данные алгоритмы в некоторый момент просто загнутся. И на этом основании предлагаете устанавливать true/false входного кубика?

Добавлено через 7 минут и 23 секунды
Нашел интересную статью из старого журнала, разбираюсь. Вроде то что надо.
Вот ссыль, может кому тоже пригодится.
http://www.kubik-rubika.com/sobrat/sobrat-...bika-1982_8.pdf
PM MAIL   Вверх
mr.Anderson
Дата 2.7.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Сашок, ну можно и на этом основании. Поставить какой-нить флаг, при "загибании" алгоритма флаг сбрасывать/устанавливать и вылетать с соответствующим результатом. Это как вариант.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Сашок
Дата 2.7.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Буду пробовать.
PM MAIL   Вверх
Dobermann
Дата 3.7.2008, 00:02 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(mr.Anderson @  2.7.2008,  20:40 Найти цитируемый пост)
Dobermann, не неси, пожалуйста, ерунду. GUI и API здесь ну совершенно не обязательны. Ты хоть знаешь, что за этими терминами кроется, особенно за вторым? Если знаешь, то мне странно, что ты их употребил в данной теме.

Да?! Чушь?! А "менюшка", которую он собрался делать, будет трижды заrepeatена?!?!?!

Добавлено через 10 минут и 57 секунд
Я не имел ввиду "высрать" GUI и API из 16-разрядного павкалевского компилятора... 
Просто как без них понять, что реализуется кубик-рубик (еще и на трёх плоскостях)
PM   Вверх
mmvds
Дата 3.7.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сдается мне, что кубик собирать не нужно, 
Идея по-поводу валидности - средние клетки сторон кубика как бы его не вертели остаются на месте, т.е. напротив средней клетки одной стороны определенного цвета обязательно должен быть другой цвет.
Т.е. как минимум одна проверка есть - проверить все серединные клетки 6 сторон, если хотябы 2 из них одного цвета, то кубик собрать невозможно, правда обратное скорее всего не всегда верно.
И еще, где-то читал про задачу с пятнашками - т.е. дан набор на поле, определить можно ли его собрать по порядку, задача решалась очень просто - проверкой четности числа ошибок в построении, если оно четно, то задача решаема, возможно и с кубиком также...

P.s. тему лучше перенести в раздел алгоритмы, там ее раскусят за вечер smile

Добавлено через 11 минут и 4 секунды
Еще в голову пришло два вида проверок:
1) На угловых кубиках все 3 стороны должны быть разного цвета
2) На боковых кубиках обе стороны должны быть разного цвета

Думаю в сумме три проверки уже достаточно неплохо, возможно этого будет достаточно.
PM MAIL ICQ   Вверх
Сашок
Дата 3.7.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В той статье которую я выше постил есть необходимое и достаточное условие валидности. Вот оно то думаю и поможет. Просто проверки по каким то критериям позволяют лишь увеличить вероятность того, что раскрасска верна. Но полностью в этом убедится без мат. док-ва не получится smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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