Форум: "Потрепаться";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
ВнизDelphi Challenge: И все-таки нужно подумать. Найти похожие ветки
← →
Style (2003-04-24 19:51) [0]Из письма Mystic:
S> удобное для всех время.
А зачем, удобное для всех?
Я вообще не понимаю регистрацию участников. Имхо самый рациональный
путь: в понедельник 10:00 начало соревнования. В следующий понедельник
после 10:00 прекращается прием решений. Этим достигается несколько
плюсов: во первых, увеличивается количество участников. Действительно,
каждый желающий может зайти на сайт и по заданиям решить, будет ли он
участвовать или нет. Предварительная решистрация является лишней
головной болью для участников, хотелось бы ее избежать
Если идти по предложенному пути, то все равно неясно, зачем всем
находится online вечером в 21:00. Если время оценки ответа будет
порядка 3-4 дня, не думаю, чтобы это могло кого-то смутить. Тем более,
что для грамотной оценки жедательно указывать также вреднее время
прогонки решения программы на тестовых примерах (автору самой быстрой
программы плюсовать баллы) и т. д.
В третьих, проводить конкурс по одному заданию бессмысленно. Тем
более, что в задании #1 очевидно время ~ длине строки. Ее можно либо
решить, либо не решить. Первое напрашивающееся решение имеет
эффективность порядка длины строки, превысить которое нельзя (хотя бы
потому, что надо просмотреть всю строку).
.........
И все-таки нужно подумать о дальнейшей судьбе Delphi Challenge
Как вы представляете проведение этих соревнований. Нужно что-бы было удобно всем. Как и судить соревнования так и участвовать в них..
1. Соревнований должно состоять из нескольких задач?
2. Лучше время проведения соревнований будет 1 неделя?
3. Начать участие можно влюбой момент? (без написания заявки)?
Пусть 1-е соревнование будет маленьким 30 мин.
Вобщем переносим его на пятницу 21:00 (Участники согласны)
← →
Style (2003-04-24 19:59) [1]..... -> конец письма от Mystic, а то несколько не понятно получается.
← →
panov (2003-04-24 20:19) [2]1. Каждый участник может решать любое количество конкурсных заданий.
2. Для проведения конкурса оговаривается время с ... по ..., т.е. решения принимаются с ... по ..., причем заранее на сайте сообщается время появления полного конкурсного задания.
3. Время конкурса определяется сложностью задания, да и не настолько оно важно, т.к. время появления ответа будет учитываться.
4. Регистрироваться не обязательно.
← →
Sha (2003-04-24 20:32) [3]Поддерживаю Mystic: регистрация участников не нужна.
Длительность тура - неделя.
Оценивать не время написания программы, а качество ее кода и время работы.
← →
Style (2003-04-24 21:19) [4]Ну в любом случае завтра 1-й тур на 30 минут...
в 21.00 по Москау.. Даём старт Соревнованиям Delphi Challenge
Еще предложения???
← →
vlsoft (2003-04-25 08:49) [5]Мысли такие:
1. Один тур должен содержать несколько (3-5) задач на разные темы.
2. Оценивается не качество кода, а правильность и время его работы.
3. Время - неделя. Соревнования на скорость бессмысленны.
Если нужна помощь, готов подобрать задачи для 1 тура, тестировать решения. Гарантирую высокий уровень проведения соревнований. Если что ,обращайтесь.
← →
ZeroDivide (2003-04-25 08:54) [6]>Предварительная решистрация является лишней
>головной болью для участников, хотелось бы ее избежать
Вообще говоря - да. Я думаю некоторых это отворачитвает.
1. Текст задания не на мыло, а на сайт в установленное время.
2. Регистрацию отменить (исключение: члены жюри)
3. Длительность тура для заданий разной сложности разная
4. Система оценки члена жюри - его личное дело.
Время должно быть удобное. Я, например, могу участвовать только в выходные. В будни - на работе и подолгу. Для меня идеально - с пятницы до понедельника :)
← →
Style (2003-04-25 09:03) [7]ZeroDivide ©.. Удобное для всех не получится :( У нас не коммунизьм.
Наверное лучше действительно выкладывать Весь объем заданий в понедельник утром. А в следующий понедельник прекращать прием заданий.
Может даже сделать так что каждый учвстник получает за один ответ определенное кол-во баллов, в зависимости от сложности задания и граммотности его выполнения. Пусть это будет среднее значение суммы баллов полученных от судейства - 50-ти бальная система. С каждым туром участнику эти очки прибавляются на его Account, участники расстанавливаются по позициям исходя из заработанных очков. Как вам эта идея???
← →
Style (2003-04-25 09:05) [8]vlsoft>>
А вы присылайте на delphichallenge@nm.ru свои задания.
Заранее спасибо за то что хотите оказать помощь!
← →
REA (2003-04-25 10:53) [9]Я не планирую в 9 часов вечера что либо писать, а буду пить пиво. Можно попозже без рейтингов и т.п. просто за компанию поучаствовать?
← →
ZeroDivide (2003-04-25 13:13) [10]Style © (25.04.03 09:03)
>Удобное для всех не получится
ОК. Тогда выкладывать все не зависимо от сложности.
Начисление очков, точнее - рейтинга.
Мое предложение:
(сумма_средних_баллов*сумма_сложностей)/(количество_выполненых_заданий)
либо
(сумма_средних_баллов*сумма_сложностей*сумма_коэффициентов_длительностей)/(количество_выполненых_заданий)
коэффициент длительности - устанавливать при поступлении решения на мыло, чем раньше получено решение, тем больше. Дисперсия этого коффициетна не должна быть большой что бы приоритетным было все же качество. Где-то в районе (1.0 - 1.25), нижняя граница будет дана человеку чье письмо пришло последним, верхняя тому, чье первым. И прогу небольшую надо написать для этого дела, которая на основании дат первого и последнего ответа, автоматически проставила этот коэффициент всем остальным. Таким образом несколько упроститься и будет более обьективной работа жюри, они будут выставлять баллы лишь за качество.
← →
Style (2003-04-25 13:17) [11]А результатирующая система занесения сумм балов будет накопительной. т.е будут результаты не только за конкретный тур, но и общие - это наверное будет вызывать дополнительный интерес у участников.
← →
Sha (2003-04-25 13:38) [12]2ZeroDivide © (25.04.03 13:13)
Забудь про время решения. Не у всех оно есть, а если есть, то не одним куском.
Хочется порешать чё-нить в свободное время в расслабленном состоянии. Думаю, я не одинок, см. REA © (25.04.03 10:53).
Чего зря напрягать людей. Все должно делаться с удовольствием :)
← →
ZeroDivide (2003-04-25 13:42) [13]>Style © (25.04.03 13:17)
В общем да. Рейтинг будет лежать постоянно в определенном диапазоне. Не зависимо от того, сколько заданий выполнил конкурсант. Это позволит не только вызвать дополнительный интерес у участников, но и вступить в соревнование новым участникам начиная с любого тура, хоть с 25-ого. Участие же в новом туре будет нужно тем кто пожелает повысить свой рейтинг.
Сейчас заметил упущение в предложеной мною формуле... Надо еще ввести туда один коэффициент, понижающий рейтинг если участник долго не принимает участие в соревнованиях. Тут дело в том, что после 1-ого тура, тот кто попадет на первое место в таблице рейтинга, вряд ли будет участвовать в соревнованиях дальше, так как его следующий результат может ухудшить его рейтинг.
Формулу надо сбалансировать поэтому однозначно я сейчас не могу придумать как изменить формулу. Предлагайте свои варианты!
← →
ZeroDivide (2003-04-25 13:44) [14]>Sha © (25.04.03 13:38)
Ты можешь не напрягаться и делать все в расслабленом состоянии. Коэффициент скорости не сильно повлияет на рейтинг.
← →
Sha (2003-04-25 13:52) [15]2ZeroDivide © (25.04.03 13:44)
А мне на рейтинг....
Он у меня и так стоит высоко :)
Дело не в нем, а в количестве участников. Не надо людей отпугивать, надо привлекать. Условия должны быть максимально простыми: заходи, когда хочешь, решай задачи из списка, жди оценки к концу недели. Тогда проект заработает.
← →
Style (2003-04-25 13:56) [16]ZeroDivide ©
Ну в общем мнения у всех совпадают
Нужно как можно меньше напрягаться. Если хочешь рузльтат то
напрячся можно и поболее.
Значит тогда сегодня первое соревнование проведем. по старой схеме, и можно будет переделывать правила и готовить на понедельник задания.!!!
← →
Sha (2003-04-25 14:07) [17]2Style © (25.04.03 13:56)
Еще, если уж менять правила, хорошо бы за автором оставить возможность (по желанию автора) участвовать в судействе собственного задания. Т.е. добавить такой пункт в форму присылаемого задание.
Я, например, не имею достаточно времени,
чтобы судить чужие задания, но парочку своих посудить бы не отказался.
← →
Style (2003-04-25 14:34) [18]Sha © >> Да нужно все грамотно описать. Ну я сделаю набросок к понедельнику, а вы если чего поправите! Посоветуете как лучше быть, как быть лучше ;)
ОКА!
← →
Fenik (2003-04-25 18:08) [19]
Style © (25.04.03 13:56)
>Значит тогда сегодня первое соревнование проведем. по старой схеме, и можно будет переделывать правила и готовить на понедельник задания.!!!
Я готов ))
← →
_Igorek (2003-04-25 21:37) [20]2Style
Ребята, так нечесно. Подал заявку, ждал, готовился, даже прогу сдуру написал, а задание не выслали. :-(
← →
Sha (2003-04-25 21:38) [21]2ZeroDivide © (25.04.03 13:13)
Над формулой поработать надо, при вычислении оценки обычно складывают произведения (на то они и коэффициенты, чтобы их перемножать :), а не перемножают суммы.
Мои предложения:
1. Вес последних заданий должен быть больше. Что-то типа:
R := (1-p) * R" + p * T, где:
R - новый рейтинг, R" - старый рейтинг, T - рейтинг за участие в туре, p - вес тура (0.05-0.15).
Чем больше вес задания, тем сильнее результаты его выполнения
изменяют рейтинг участника.
2. Рейтинг за участие в туре вычисляется на как средний взвешенный рейтинг за тур по всем судьям:
T := (K1 * T1 + K2 * T2 + ... + Kn * Tn) / (K1 + K2 + ... + Kn), где:
T1, T2, ... Tn - рейтинги участника за тур, вычисленные для каждого судьи, K1, K2, ... Kn - квалификация судей (1..10).
3. Для i-того судьи рейтинг участника за тур вычисляется по формуле:
Ti := R" + (Xi - R" * B / 10) * p, где:
Xi - выставленная им оценка, учитывающая сложность, скорость (1..10), B - максимальное количество баллов.
4. Как судья генерирует свои оценки нас не волнует. Можно рекомендовать ему что нибудь типа:
Xi := Min(10, a * b * c * Yi), где:
a, b, c - коэффициенты за то, за се, Yi - собственно оценка по 10-бальной шкале.
5. Все начинают со значения рейтинга равного 2.
За неучастие в туре рейтинг плавно изменяется, приближаясь к начальному значению:
R := (1-q) * R" + q * 2, где:
q - вес пропуска тура ~ 0.005
Что мы с этого будем иметь:
1. Обозримость формул, небольшое количество переменных, описывающих рейтинг участника, вес тура, вес пропуска, квалификацию судей, оценки. Формулы хорошо ложатся на тип currency (4 знака после запятой).
2. Значения текущего рейтинга участника, его рейтинга за тур, квалификации судьи и выставленной оценки лежат в любимом всеми диапазоне 1..10.
← →
Style (2003-05-05 09:19) [22]Товарисчи я все вроде переделал, осталось еще правила переписать.. Короче вечером сделаю.. Посмотрите оцените изменения
на http://delphichallenge.nm.ru
любые замечания пишите в сюды форум!
← →
ZeroDivide (2003-05-05 09:49) [23]>Sha © (25.04.03 21:38)
>Style © (05.05.03 09:19)
Sha, твоя прога не рулит.
Причина раз: Прежде чем что то писать не плохо было бы сформулировать задачу, а то получилось вот что:
1 Рейтинг зависит от предыдущего рейтинга?! Что не есть правильно ибо рейтинг в таком случае зависит от количества туров.
Предположим участник начинает с 25-го тура и что он "ламо" что-ли по рейтингу будет? Я считаю что для определения рейтинга, необходимо участие всего лишь один раз.
2. Что значить "добавить судью"? Что если из тех судей, которые зарегистрированы как судьи, кто-то не найдет времени или по каким нибудь иным причинам не сможет голосовать.
3. Что значит "добавить участника"? А если участники на каждом туре будут вообще разные?
4. Так как мне это уже не понравилось, то код твой я смотрел мельком, однако же одна фича меня удивила: нажимаю на вычислить рейтинги и каждый раз разный результат. Причем при многократном нажимании все стремиться к какому то числу
5. Нафиг рейтинг делать вещественным числом. Style по-моему не плохо предложил, еще в самом начале integer: от 1 до 50. Градация достаточная, как мне кажется.
Постановка задачи ИМХО:
1.
Style дает input и аутпут форматы, какие ему удобно для автоматизации работы сайта, ты пишешь прогу, ну или я ее напишу :)
2. Рейтинг от 1 до 50
3. Рейтинг не зависит от предыдущего рейтинга.
4. При пропуске тура рейтинг падает, но очень не значительно!!!
А то мы получим "программиста всех времен и народов, который поставил свой рекорд эннадцать туров назад"
← →
Style (2003-05-05 10:26) [24]2 ZeroDevide..
Я вообще хотел вести историю соревнований.. т.е. в Архиве будут храниться задания предыдущих туров и результаты.
А может общие результаты сделать средним значением баллов.
т.е. Максимальная оценка это 50. + дополнительные баллы за скорость алгоритма и индивидуальность кода.
тогда общий результат = Среднему значению набранных очков за все туры.
Result := (Res1 + Res2 + Res3) / Count;
то же самое и для судейства. Судья оценивают каждое задание в отдельности и могут дать за него Макс балл. (если решение правильное), могут уменьшать баллы в зависимости от хода мыслей участника. +
Дополнительно могут дать макс. 10 баллов за изящность кода.
Оценки судей высчитываются для каждого участника в отдельности.
А форма программа нужна следующая..
Имя Судьи:
Участник или его №.
№ Задания Оценка Доп Балл.
1 12 0
2 11 0
3 24 7
.........................
n x z
Должен быть экспорт и импорт из своего формата файла
Можно взять мой http://sands.nm.ru/swaptable.zip :) Интерфейс почти как в BDE
Соответственно программа должна высчитывать средний бал оценок всех участников жюри. И хранить информацию в Базе за предыдущие туры. Выводить общие результаты.. Я Сделаю экспорт в html..
← →
Style (2003-05-05 11:03) [25]Да ксатит приношу свои извинения за то что я так долго его переделывал.. На права здавал :) А потом праздники и все-такое.. Но все-равно время выкопал :))
← →
ZeroDivide (2003-05-05 11:32) [26]>Style ©
>тогда общий результат = Среднему значению набранных очков за
>все туры
Об этом я и говорил, но Sha как то резво взялся и наваял свою прогу, которая имхо не рулез.
← →
Style (2003-05-05 11:41) [27]Еще задания первого тура - это одни математические алгоритмы.. Наверное темы заданий должны быть более обширного характера.. Работа с файлами, WinApi, ООП, VCL, Написание Компонентов, Работа с графикой. Именно ползая по всем темам можно как то думать о рейтенге.
← →
Style (2003-05-05 11:44) [28]Sha>> Нужно бы переделать все. Наверное средний результат это самое простое решения для составления рейтинговой базы.
Ну кто займется прогой или давайте каждый по чуть-чуть.. Ща ФТПшник общий откроем.
← →
DVM (2003-05-05 11:59) [29]У Вас там в задачах ошибки и неточности. Так не получится решать и оценивать.
Задание №6:
что за чушь: Пример: 153 является числом Армстронга, (153 = 13 + 53 + 33)
Должно быть (из объяснения)153=125+27+1
Задание №4
Есть ряд чисел 123456789101112131415161718192021
Как задан ряд? Это строка, массив, целое число, множество(хотя это вряд-ли:)?
← →
Mystic (2003-05-05 12:34) [30]
> что за чушь: Пример: 153 является числом Армстронга, (153
> = 13 + 53 + 33)
> Должно быть (из объяснения)153=125+27+1
Так и есть. Вместо 13 + 53 + 33 подразумевалось 1^3 + 5^3 + 3^3
> Как задан ряд? Это строка, массив, целое число, множество(хотя
> это вряд-ли:)?
Как хочешь, так и задавай. Можешь обойтись вообще без этого ряда. Надо реализовать функцию, которая удовлетворяет всем описанным ограничениям.
← →
Style (2003-05-05 12:52) [31]Mystic ©
Может изменить задание. №4 я кое что добавил.. может лучше так..?
DVM>> Спасибо за замечание.. №6 моя ошибка забыл открыть блоки <SUP></SUP> :)
← →
DVM (2003-05-05 13:10) [32]Извиняюсь, за то что придираюсь, но в 4 задании еще одна наточность, из за которой я, честно говоря, не сразу смог "въехать" в задание.
Найти цифру с номером n
Правильнее: Найти число...
← →
Style (2003-05-05 13:18) [33]2DVM OK! Уже поменял.
← →
Mystic (2003-05-05 14:09) [34]
> Может изменить задание. №4 я кое что добавил.. может лучше
> так..?
Да нет, так не лучше. Теряется смысл. Если передавать строку в качестве параметра, то решение сведется к тривиальному:
function Func(Data: string; N: Integer): Integer;
begin
Result := Integer(Data[N]) - Integer("0");
end;
А вот посмотрел на приведенные примеры, и запутался окончательно...
Суть задания состоит в том, чтобы самому эффективно получать заданную последовательность чисел (а не пользоваться заданной). Я бы переформлировал так:
Имеется последовательность цифр, образованная последовательно записанными натуральными числами 123456789101112131415161718192021... Необходимо получить N-ю цифру из заданной последовательности (N>=1)
Результат оформить в виде функции
function Func(N: Integer): Integer;
Пример
Func(3) = 3
Func(11) = 0
Func(17) = 3
...
← →
Style (2003-05-05 14:26) [35]2 Mystic
Все поменял...
ОК.. Но это опять же математика..
Наверное в следующий тур следует включить более обширные темы заданий.
← →
Mystic (2003-05-05 14:59) [36]
> Style © (05.05.03 14:26)
Не знаю... Математика хороша тем, что
1. Участвовать могут все желающие...
2. Выигрывает тот, у кого лучше развита смекалка...
3. Задания могут быть хорошим стимулом для начинающих программистов. Зачастую видишь парней 13-15 лет, создающих базы данных на Delphi, но которые не в состоянии напистать простенького цикла...
4. Много критериев оценки: например можно давать бонусные очки за самое производительно решение, ... Штрафовать за применение ассемблера (чтобы использование асемблера было умеренным и только там, где это необходимо)...
5. В целом можно придумать много интересных заданий для самых различных уровней подготовки...
6. Код победителей может служить другим для обучения...
Насчет прочих соревнований, то они
1. Требуют хорошего знания Delphi (иногда связаны с изучением каких-то разделов)
2. Требуют много времени на решение
3. Если задача не имеет практической ценности, то жалко участвовать в конкурсе.
Поэтому примером подобного конкурса может быть:
Создать компонент графического редактора с подсветкой синтаксиса.
Соответсвенно, через месяц--другой после этого производить итоги конкурса. По желанию авторов публиковать либо не публиковать исходник. В конкурс включать не только FreeWare--компоненты, но и ShareWare. В этом случае конкурс может служить нескольким целям:
1. Реклама своих программных продуктов.
2. Посетителям облегчает выбор компонент для работы.
Кстати, можешь кинуть рекламу и в RSDN, в Этюды для программистов...
и связаться с другими ресурсами по Delphi --- лишняя реклама не помешает.
← →
Style (2003-05-05 15:14) [37]2 Mystic: Рекламировать конечно надо но немного позже.. Когда явно определена и проверена система работы сайта. Но тематику заданий мне кажется расширять надо пусть не сложные задания, но небольшая проверка на знание АПИ, работы с графикой и т.д. Будет немного интереснее.
← →
Sha (2003-05-05 15:20) [38]2ZeroDivide © (05.05.03 09:49)
>1 Рейтинг зависит от предыдущего рейтинга?! Что не есть
>правильно ибо рейтинг в таком случае зависит от количества туров.
Рейтинг (в шахматах, например) зависит от многих параметров, в том числе и от количества туров. Ты же не думаешь, что там его вычисляют неправильно?
>Предположим участник начинает с 25-го тура и что он "ламо" что-
>ли по рейтингу будет? Я считаю что для определения рейтинга,
>необходимо участие всего лишь один раз.
А чтобы стать чемпионом мира достаточно один раз напоить и обыграть бесчувственного Каспарова.
>2. Что значить "добавить судью"? Что если из тех судей, которые
>зарегистрированы как судьи, кто-то не найдет времени или по
>каким нибудь иным причинам не сможет голосовать.
Программа отлично работает при любом количестве судей. Более того: разные судьи могут оценивать разных участников. Не каждый судья обязан оценивать. Список судей - это список ВОЗМОЖНЫХ (т.е. всех) судей.
>3. Что значит "добавить участника"? А если участники на каждом туре будут вообще разные?
Программа отлично работает при любом количестве участников. Список участников - это список ВОЗМОЖНЫХ участников, т.е. всех участников, для которых считаем рейтинг.
>4. Так как мне это уже не понравилось, то код твой я смотрел
>мельком,
Был очень занят, вообще не смотрел ни программу, ни код :)
>однако же одна фича меня удивила: нажимаю на вычислить
>рейтинги и каждый раз разный результат. Причем при многократном
>нажимании все стремиться к какому то числу
Да, это так. Птичка "отладка" позволяет имитировать проведение нескольких туров и посмотреть, как будет меняться рейтинг участника. В нормальном режиме птички нет.
>5. Нафиг рейтинг делать вещественным числом. Style по-моему не
>плохо предложил, еще в самом начале integer: от 1 до 50.
Для попадания в 10-балльную шкалу. При высокой активности участника его рейтинг будет очень близок к его оценке по 10-балльной шкале. Если 4 знака после запятой много, можно оставить 1.
>При пропуске тура рейтинг падает, но очень не значительно!!!
>А то мы получим "программиста всех времен и народов, который
>поставил свой рекорд эннадцать туров назад"
Это сделано в моей программе.
2Style © (05.05.03 11:44)
>Нужно бы переделать все. Наверное средний результат это самое
>простое решения для составления рейтинговой базы.
Это направильно. При вычислении рейтинга всегда последний результат имеет больший вес.
Скажем, в прошлом году ты поступал в институт и средний балл составил 3, а в этом году ты, основательно подготовившись, сдашь на 9. Что же, оценка твоих ТЕПЕРЕШНИХ знаний равна 6? Если бы приемная комиссия так думала, то тебе пришлось бы еще год штудировать учебники :)
В общем присмотритесь к проге повнимательнее. Она не так плоха. Вопросы, пожелания можно на мыло.
← →
Style (2003-05-05 15:34) [39]2 SHA Дай ссылку на прогу плиз...
← →
ZeroDivide (2003-05-05 15:44) [40]>Style © (05.05.03 15:14)
>Ну кто займется прогой или давайте каждый по чуть-чуть
Я напишу. В твоем формате.
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.011 c