![]() |
|
![]() ![]() ![]() |
|
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
Ребята здраствуйте!
Тут есть одна интересна игра называется Судоку(Sudoku). Информация о игре здесь Предлогаю на форуме обсудить алгоритмы её решения, не просто тупой перебо, а какие-нибудь алгоритмы связаные с KI Зарания всем благодарен. -------------------- www.unkis.com |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну подобные задачи чаще всего решаются перебором с какими-нибудь модификациями
самая частая модификация - отсечение какого-нибудь множества вариантов еще один вариант - перебор в каком-то определенном порядке тут сразу же добавляется отсечение - проверка корректности после каждой поставленной цифры дальше, как мне кажется, нелишним будет упорядочвание перебора: сначала искать те клетки, где количество вариантов наименьшее если оно - 0, сразу ясно, что надо делать откат если 1 - и перебора никакого нету 2 - перебрать два варианта это немного замедлит рост количества вариантов по мере углубления... -------------------- qqq |
|||
|
||||
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
Я тут в интернете почитал многие к этой проблемме подходят с матиматической точке зрения, некотыре испльзуют какой-то Sword Fish
Кто что про эти методы знает. -------------------- www.unkis.com |
|||
|
||||
XbiT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 9.2.2006 Репутация: 1 Всего: 1 |
писал пару дней назад перебор на эту задачу, но для поля 5*5 он загибался. 4*4моментально работает.
|
|||
|
||||
daNick |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 12.8.2006 Где: Казахстан, Астана Репутация: нет Всего: нет |
А скажите лучьше, как генерить это самое поле 9х9?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
По-моему более разумно не заниматься перебором, а строить трехмерный массив вариантов расположения с удалением невозможных.
В случае когда решение единственное, за все решение потребуется максимум 2-3 предположения. К тому же несложно организовывать откат и, следовательно, рекурсивный поиск. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
nostromo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Пара реализаций решателя sudoku на Erlang:
http://www.erlang-consulting.com/obfuscatederlang.html http://www.mail-archive.com/[email protected]/msg00274.html --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Генерил рекурсией. Есть даче код на Jave, отрабатывает за доли секунды. -------------------- Никогда не говори никогда |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: нет Всего: 181 |
Есть еще dancing links algorithm Кнута, смотри линк, там есть пример для судоку
-------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
daNick |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 12.8.2006 Где: Казахстан, Астана Репутация: нет Всего: нет |
boevik, на ВБ можешь сделать исходники?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов |
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
В принципе, не должно быть проблемным.
Можешь и сам попробовать, код не сложный. -------------------- Никогда не говори никогда |
|||
|
||||
daNick |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 12.8.2006 Где: Казахстан, Астана Репутация: нет Всего: нет |
boevik, я пытался сам, но у меня нифига не вышло. Даже на сайте посвященному чисто программированию судоку исходники рабоают неправильно. Т.е. лбо по вертикали, либо по горизонтал, либо в блоках цифры повторяются.Так что, если не жалко, помоги?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов |
|||
|
||||
boevik |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Выкладываю исходники на Java, будут затруднения пиши:
Всё начинается с запуска
результатом является заполненое поле table. Если надо получить поля для отгадывания, то есть другая функция которая рандомально затирает цифры в заполненом поле. Удачи -------------------- Никогда не говори никогда |
||||
|
|||||
daNick |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 12.8.2006 Где: Казахстан, Астана Репутация: нет Всего: нет |
Спасибо. Попытаюсь разобраться. Хотя я в Яве не шарю, я васче кроме вб и паскаля нде ни шарю, но это дело поправимое.
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов |
|||
|
||||
daNick |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 12.8.2006 Где: Казахстан, Астана Репутация: нет Всего: нет |
Переложил на VB, ни фига не работает. Переменная digit принимает значения большее 9. Почему так?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |