Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Конкурсы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.07.2012, 00:49
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию Конкурс: оптимизация, многопоточные приложения

Задание:
Получение последовательности чисел, обладающих следующими свойствами:
  • Все числа - простые шестизначные
  • Разности соседних чисел последовательности равны (пример: 550, 558, 566, 574)
  • Все числа получены методом перестановки цифр в них (пример: 4567, 4657, 6754, 7456)
  • Цифры в числе не повторяются
Длина последовательности - 4 числа. Спойлер: вариантов последовательности несколько.
Условия:
Программа должна использовать многопоточные вычисления. В программе не должно быть табличных реализаций - все числа вычисляются в момент запуска.
Варианты вывода информации:
  • консольное приложение, выдаёт результат при запуске на экран
  • приложение Windows, выдаёт результат в Memo после нажатия на кнопку
Оценка:
Все программы будут оцениваться по скорости получения результата.
Если вывод результатов будет вынесен в конец программы (отдельно от подсчётов), то длительность вывода учитываться не будет.
Если программа вывела неверный результат (лишнюю цепочку, или наоборот, пропустила один из результатов), она считается ошибочной и снимается с конкурса.
Программы будут оцениваться на компьютере следующей конфигурации:
  • Материнская плата ASRock 880GMH/U3S3
  • Процессор AMD FX-8150 Black Edition, 3.80ГГц (overclock 6%)
  • Оперативная память DIMM DDR3, 8ГБ, 1600МГц, Corsair Vengeance CMZ8GX3M1A1600C10
  • Windows 7 Ultimate, без запущенных сторонних программ, с загрузкой каждого ядра (из восьми) процессора не выше 5%.
Условия участия:
Сроки принятия заявок: одна неделя (до 31.07.2012 23:59:59).
За время проведения вы можете прислать (см. дальше) любое количество проектов, оцениваться будет каждый из них отдельно. После окончания конкурса все работы будут выложены в общий доступ для любого пользователя DelphiSources.ru

Приёмная комиссия:
Прислать свой проект можно следующим образом:
  • Личным сообщением мне на форуме (во вложении, либо через любой сервис обмена файлами без ожидания и ограничения по скорости).
  • На адрес электронной почты ds@djphoenix.tk, в теме указать "Конкурсная работа", в теле письма указать ник на форуме.
  • Опубликовать сообщением в этой теме (не рекомендуется, но допустимо).
Призы:
  1. Разработчик лучшей программы получит 3000 баллов к репутации.
  2. Разработчик, занявший второе место, получит 1000 баллов к репутации.
  3. Разработчики, не занявшие призовых мест, получат приз зрительских симпатий и по 100 баллов репутации.
Обсуждение конкурса:
Если у вас возникнут вопросы по организационной части конкурса, вы можете задать их в этой теме.
Если у вас возникнут вопросы по технической реализации, вы можете поискать ответ тут. Как сформулировать поисковый запрос.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 24.07.2012 в 01:06.
Ответить с цитированием
  #2  
Старый 24.07.2012, 01:05
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Я почти уверен на 100%, что за репутацию на данном форуме вряд ли кто-то захочет участвовать в конкурсе, тут скорее надо денежные призы, как минимум...

ЗЫ в конкурсе участвовать точно не буду (по крайней мере с такими призами).
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 24.07.2012, 01:15
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ну а как же интересный опыт? Забегая вперёд, я такую программу уже написал чисто из спортивного интереса, и доволен собой
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #4  
Старый 24.07.2012, 01:23
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Ну спортивный интерес - это супер, но не летом же
Я сейчас наоборот отдыхать пытаюсь, пока есть возможность
__________________
Помогаю за Спасибо
Ответить с цитированием
  #5  
Старый 24.07.2012, 17:19
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А я даже задания не понял *рука_лицо*
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #6  
Старый 24.07.2012, 18:52
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Что именно в задании неясно?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #7  
Старый 24.07.2012, 23:11
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Оценка:
Все программы будут оцениваться по скорости получения результата.
Если вывод результатов будет вынесен в конец программы (отдельно от подсчётов), то длительность вывода учитываться не будет.
Если программа вывела неверный результат (лишнюю цепочку, или наоборот, пропустила один из результатов), она считается ошибочной и снимается с конкурса.
Программы будут оцениваться на компьютере следующей конфигурации:
  • Материнская плата ASRock 880GMH/U3S3
  • Процессор AMD FX-8150 Black Edition, 3.80ГГц (overclock 6%)
  • Оперативная память DIMM DDR3, 8ГБ, 1600МГц, Corsair Vengeance CMZ8GX3M1A1600C10
  • Windows 7 Ultimate, без запущенных сторонних программ, с загрузкой каждого ядра (из восьми) процессора не выше 5%.
Интересно каким образом будет вычисляться скорость вычисления. Я написала один белее-менее оптимизированный вариант и он находит все решения менее чем за 200 миллисекунд. Это то на моём стареньком одноядерном компьютере... Что же будет на современном 8-ядерном?
Заподозрила, что возможно я где-то ошиблась, поэтому переписала полностью с нуля другой вариант, в лоб, без какой либо оптимизации, но даже он выдаёт те же результаты за 300-400 миллисекунд...
Хм... Это так и должно быть или у меня всё-же ошибка?
Ответить с цитированием
  #8  
Старый 24.07.2012, 23:36
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Для оценки скорости будут использоваться методы WinAPI, позводяющие получить точное время до 2-15мс.
Интересно посмотреть на ваше решение, можете отправить как конкурсную работу
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #9  
Старый 24.07.2012, 23:49
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Для оценки скорости будут использоваться методы WinAPI, позводяющие получить точное время до 2-15мс.
Я к тому, что такие малые промежутки тяжело замерять - если запускать подряд несколько раз, то получается довольно большой разброс по времени...
Цитата:
Сообщение от DJ PhoeniX
Интересно посмотреть на ваше решение, можете отправить как конкурсную работу
Конечно отправлю. Просто ещё хочу посмотреть, что ещё можно оптимизировать...
Ответить с цитированием
  #10  
Старый 26.07.2012, 21:46
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Мог бы сделать, но второй пункт чето напрягает (насчет разности). Неуверен, что получу столько простых чисел Да и с тредами не очень дружу - работал несколько раз, да и то на джава... А еще скорость.. Интересно, кто-то (кроме ТС) сделал работоспособную программу, отвечающую всем условиям? Может и мне напрячься?..
Ответить с цитированием
  #11  
Старый 26.07.2012, 23:36
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от YVitaliy
Интересно, кто-то сделал работоспособную программу, отвечающую всем условиям? Может и мне напрячься?..
Да, рабочую программу прислала MiraLaklamon, результат верный, но пока я не буду озвучивать ни правильный ответ, ни результат её программы

Напрячься обязательно
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #12  
Старый 26.07.2012, 23:43
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Ладно. Вопрос: насчет перестановки цифр - будет верно, если я "схитрю" и сгенерирую массив чисел, соответствующих условию, но без прямой перестановки? Или нужно рутинно переставлять цифры? А то я уже "оптимальный" алгоритм тут наваял...
Ответить с цитированием
  #13  
Старый 27.07.2012, 04:30
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Вариант поиска неважен - вы можете переставлять цифры в числах и проверять их простоту/разницу, либо найти простые числа и проверять их разность/цифры, и даже "брутить" разницу и проверять простоту/цифры. Важно только время и использование потоков.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter