![]() |
|
![]() ![]() ![]() |
|
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Выкладывай кодна VB, с VB я немного знаком.
-------------------- Никогда не говори никогда |
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
digit%10 -> digit mod 10 - это выполнил? -------------------- Никогда не говори никогда |
|||
|
||||
ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: нет Всего: -1 |
самый разумный алгоритм...сначало заполнить матрицу...потом сохранить ее в вирт массиве.
и в зависимости от сложности отчистить ее, оставив нужное количество цифер --------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 1 Всего: 14 |
http://ru.wikipedia.org/wiki/Судоку
http://ru.wikipedia.org/wiki/Обобщённое_судоку http://en.wikipedia.org/wiki/Sudoku http://en.wikipedia.org/wiki/Mathematics_of_Sudoku http://fr.wikipedia.org/wiki/Sudoku Да, и не забывайте, что задача обобщённого судоку NP-полна => полиномиального решения не существует (по крайней мере, до тех пор, пока мы глобально не пересмотрим существующую теорию вычислений). Лучший здесь вариант -- это, имхо, оптимизированный «умный» перебор. Это сообщение отредактировал(а) V_A_KeRneL - 29.12.2006, 09:42 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
Magister Y0da |
|
|||
![]() Зелёненький ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 30.11.2004 Репутация: 2 Всего: 2 |
--------------------
|
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Ох. С Си плохо знаком, а еще и написано нечитабельно ![]() Кто нибудь в Алгол может перевести? -------------------- Всем добра ![]() |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
Вот алгоритм boevik переписанный на Delphi:
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Vsts |
|
||||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 10.1.2007 Репутация: нет Всего: 1 |
Помоему прога от "boevik" много лишнего делает.
Алгоритм можно упростить.
Пусть есть матрица ,удовлетворяющая правилам судоку . Например А = ------------------------------- | 0 3 6 | 1 4 7 | 2 5 8 | | | | | | 1 4 7 | 2 5 8 | 0 3 6 | | | | | | 2 5 8 | 0 3 6 | 1 4 7 | +---------|---------|---------| | 3 6 0 | 4 7 1 | 5 8 2 | | | | | | 4 7 1 | 5 8 2 | 3 6 0 | | | | | | 5 8 2 | 3 6 0 | 4 7 1 | +---------|---------|---------| | 6 0 3 | 7 1 4 | 8 2 5 | | | | | | 7 1 4 | 8 2 5 | 6 0 3 | | | | | | 8 2 5 | 6 0 3 | 7 1 4 | +---------|---------|---------| что бы получить новую, достаточно в этой поменять две строчки (или столбца) местами, при уловии что они обе принадлежат [ 0 , 2 ] [ 3 , 5 ] [ 6 , 8 ] . Причем , результат от того в каком порядке их переставлять( сначала только столбцы, строки, или в перемешку). так например меняем первую(нулевую) строку со второй(первой), 4(3) столбец с 6(5) --------------------------------- | 1 4 7 | 8 5 2 | 0 3 6 | | | | | | 0 3 6 | 7 4 1 | 2 5 8 | | | | | | 2 5 8 | 6 3 0 | 1 4 7 | +---------|----------|---------| | 3 6 0 | 1 7 4 | 5 8 2 | | | | | | 4 7 1 | 2 8 5 | 3 6 0 | | | | | | 5 8 2 | 0 6 3 | 4 7 1 | +---------|---------|---------| | 6 0 3 | 4 1 7 | 8 2 5 | | | | | | 7 1 4 | 5 2 8 | 6 0 3 | | | | | | 8 2 5 | 3 0 6 | 7 1 4 | +---------|---------|---------|
Других елементарных преобразований я пока не нашел.Возможно ими можно все описать. И еще не посчитал,сколько порождающих элементов есть.(Извеняюсь если это уже в статях есть,но все просматривать не было времени, да и язык буржуйский ![]() ПыСы : математика это хАрАшо, тока за неё не платят... ![]() Это сообщение отредактировал(а) Vsts - 10.1.2007, 22:17 |
||||
|
|||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Совершенно врно, прога делает много лишнего - в нее уже заложены инструменты для других решений. К примеру, 1) можно задать начальную мартицу и найти все возможные решения решения; 2) производить проверку ввода юзером и т.д и т.п. -------------------- Никогда не говори никогда |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |