Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Лучший алгоритм? спор 2х программистов 
:(
    Опции темы
 
Какой алгоритм признать победившим?
Первый [ 1 ]  [12.50%]
Второй [ 7 ]  [87.50%]
Всего проголосовавших: 8
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
dvork1ng
Дата 23.4.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Суть вопроса состоит в следующем: в результате спора 2х программистов было решено устроить соревнование: разработать алгоритм, заполняющий квадрат 9х9 по правилам судоку, каждый сделал свой алгоритм, но победитель так и остался неясен. Помогите определить чей алгоритм признать лучшим smile

Первый алгоритм состоит в том, что: 
Генерируется строка из 9 чисел, без повторов, после чего во второй, третьей, ..., девятой строке пишется она же, только со сдвигом на 3, 6 клеток, в результате получается квадрат типа
http://s1.ipicture.ru/uploads/20110423/6RPfrgdQ.png
время выполнения - порядка 0,000004 секунды
Плюсы - время выполнения
Минусы - решение "в лоб", малое покрытие возможных вариантов, зная первую строку можно полностью записать весь квадрат

Второй алгоритм состоит в том, что:
1) Генерируется строка из 9 чисел без повторений и записывается в первую линию
2) из этой строки заполняются первые три квадрата по правилу: в первый квадрат пишется вторая и третья тройка чисел, во второй - первая и третья, в третий - вторая и первая
Пример: если строка 324 587 169, то квадраты заполняются так
324 587 169
587 169 324
169 324 587
3) в тройках второй и третьей строки числа переставляются случайным образом, но так, чтобы удовлетворять условиям, получается нечто вроде
324 587 169
758 916 342
691 432 578
4) после этого снова генерируется строка для четвертой линии исходного квадрата так, чтобы удовлетворяла условиям уже заполненных ячеек
5) снова заполняются и перемешиваются квадраты и генерируется строка для 6й строки исходного квадрата и т.д.
6) если на каком-то из этапов произошла коллизия - вариант отбрасывается и все начинается сначала
в результате получается квадрат типа 
http://s1.ipicture.ru/uploads/20110423/21uh34Sv.png
Время выполнения - порядка 0,0003~0,00004
Плюсы - большое покрытие возможных вариантов, отсутствие видимых закономерностей
Минусы - большее время выполнения
З.Ы. - если написал не в тот раздел - просьба не пинать сильно ) более подходящего не увидел )


PM MAIL   Вверх
DarkProg
Дата 23.4.2011, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

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



А вы по какому критерию хотели соревноваться - кто больше вариантов сможет предложить(в смысле для заполнения квадрата) или у кого быстрее алгоритм???


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
dvork1ng
Дата 23.4.2011, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



К сожалению - конкретно мы не оговаривали правила, поэтому и возникла проблема smile
Вопрос был - чей алгоритм будет лучше выполнять задачу, комплексно. В качестве критерия можно использовать такой - какой алгоритм Вы лично использовали бы в коммерческом продукте smile

Это сообщение отредактировал(а) dvork1ng - 23.4.2011, 15:00
PM MAIL   Вверх
DarkProg
Дата 23.4.2011, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

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



Цитата(dvork1ng @  23.4.2011,  14:45 Найти цитируемый пост)
Вопрос был - чей алгоритм будет лучше выполнять задачу, комплексно. В качестве критерия можно использовать такой - какой алгоритм Вы лично использовали бы в коммерческом продукте

Ok, тогда я выберу более быстрый вариант - для меня это один из основополагающих критериев.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Akina
Дата 23.4.2011, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(dvork1ng @  23.4.2011,  15:45 Найти цитируемый пост)
Вопрос был - чей алгоритм будет лучше выполнять задачу, комплексно. 

Если задача сформулирована ИМЕННО ТАК, без определения критериев
Цитата(dvork1ng @  23.4.2011,  15:23 Найти цитируемый пост)
разработать алгоритм, заполняющий квадрат 9х9 по правилам судоку

то невозможно решить, какой алгоритм лучше. Поскольку речь идёт о поиске ОДНОГО заполнения - временем работы можно пренебречь.

Однако исходя из предметной области - оба алгоритма плохи. Второй - менее плох, т.к. обеспечивает более-менее случайное заполнение.



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

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


Новичок



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

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



Я согласен с тем, что оба варианта не дают полностью удовлетворительного результата, но они и разрабатывались "на коленке", в течении нескольких часов, с учетом кодинга. Вопрос не в том, хороши ли они, а какой из двух считать победителем smile
И речь не шла о поиске ОДНОГО заполнения, речь шла об алгоритме, который будет заполнять квадрат по правилам судоку, собственно каждый из алгоритмов заполняет его сколько угодно раз, за исключением того, что первый может покрыть (теоретически) 9! * 6^2 * 3^2 вариантов, а второй - 9!*6!*3!^10 вариантов. (В математике мог ошибиться, если так - поправьте, но общий смысл все равно остается таким)

Это сообщение отредактировал(а) dvork1ng - 24.4.2011, 07:14
PM MAIL   Вверх
Akina
Дата 24.4.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(dvork1ng @  24.4.2011,  07:39 Найти цитируемый пост)
речь не шла о поиске ОДНОГО заполнения

Неправда.
Во-первых, перечитайте формулировку более внимательно. "ЗАПОЛНЯЮЩЕГО". Заполнил - всё, конец.
Во-вторых, будь так, как ты говоришь - почему меряется время генерации ОДНОГО заполнения?



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

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


Эксперт
****


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

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



Вопрос из категории что лучше: бутылка пива или рюмка водки?
Выбираю 2. так как 1, вообще халтура. там повторы одни.

PM MAIL   Вверх
dvork1ng
Дата 24.4.2011, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 24.4.2011,  12:23)
Цитата(dvork1ng @  24.4.2011,  07:39 Найти цитируемый пост)
речь не шла о поиске ОДНОГО заполнения

Неправда.
Во-первых, перечитайте формулировку более внимательно. "ЗАПОЛНЯЮЩЕГО". Заполнил - всё, конец.
Во-вторых, будь так, как ты говоришь - почему меряется время генерации ОДНОГО заполнения?

Все верно, прошу прощения ) С утра неправильно прочитал )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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