Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2010-08-14 07:34:45 ЛС | профиль | цитата
Assasin, личку глянь.
------------ Дoбавленo в 07.17:
Подведены итоги задачи №0:

Результаты спарринговых тестов:
miver vs. nesco:
Правильных ответов: 20, неправильных ответов: 0
Время эталонной схемы: 10579.8 +/- 5441.61132869958 мс
Время тесируемой схемы 4536.05 +/- 38.6025292326538 мс

miver vs. Assasin
Правильных ответов: 20, неправильных ответов: 0
Время эталонной схемы: 10464.1 +/- 5376.63165834091 мс
Время тесируемой схемы 2719.5 +/- 76.7802743308188 мс

Assasin vs. nesco
Правильных ответов: 20, неправильных ответов: 0
Время эталонной схемы: 2772.55 +/- 118.907516029985 мс
Время тесируемой схемы 4583.65 +/- 90.5859725401932 мс

Из двух результатов для каждой схемы я выбрал лучший. Таким образом, получаем следующую ситцацию:
  I место - Assasin: 2719.50 +/- 76.78 мс
II место - nesco: 4536.05 +/- 38.60 мс
III место - miver: 10464.1 +/- 5376.63 мс

В прищепке - протоколы всех трёх тестов, плюс доработанная схема тестирования (поменял генератор задачек)

Теперь разберёмся со статистикой элементов в схеме:

Assasin: All: 37+11, sdk: 26+1, MultiElements: 1+0, Core: 7+1, links: 0+0, points: 124+38
nesco: All: 36, sdk: 36, MultiElements: 0, Core: 7, links: 0, points: 180
miver: All: 52, sdk: 52, MultiElements: 0, Core: 22, links: 0, points: 144

------------ Дoбавленo в 07.24:
Таким образом, лидером по времени неожиданно для всех становится Assasin. На втором месте nesco, на почётном третьем - miver. Если результаты удовлетворяют всех участников, то победители получат вознаграждение (+50 ћ, +30 ћ, +10 ћ за 1, 2 и 3 места).

------------ Дoбавленo в 07.34:
Подведены итоги задачи №1.
nesco: 179.85 +/- 8.63 мкс
All: 29, sdk: 29, MultiElements: 0, Core: 5, links: 0, points: 98
miver: 173.20 +/- 5.37 мкс
All: 22, sdk: 22, MultiElements: 0, Core: 7, links: 0, points: 66

Решение от nesco:
Add(MultiElementEx,6167144,889,469)
{
@Hint=#8:Задача 1|5:nesco|12:Старшая Лига|
AddHint(41,47,72,39,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,7593973,21,21)
{
WorkCount=#6:doGray|
EventCount=#6:onGray|
DataCount=#1:m|1:w|
Width=727
Height=347
VOffset=98
HOffset=14
link(doGray,14012731:doEnum,[])
}
Add(Str_Enum,14012731,42,119)
{
Delimiter=""
link(onEnum,13120520:doEvent,[])
link(onEndEnum,8871451:doLength,[(95,132)(95,188)])
link(String,7593973:w,[])
}
Add(IndexToChanel,13120520,168,119)
{
Point(Index)
link(onEvent1,2484496:doOperation,[(212,125)(212,76)])
link(onEvent2,11522524:doWork2,[])
link(Index,5457149:Var2,[])
}
Add(StrCat,8341423,301,126)
{
Point(doClear)
link(onStrCat,4446164:doEvent,[(343,132)(343,43)(99,43)(99,69)])
link(Str1,14522169:Var1,[(307,114)(282,114)(282,166)])
}
Add(GetDataEx,14522169,301,161)
{
link(Data,8341423:Result,[])
}
Add(HubEx,11522524,266,126)
{
link(onEvent,8341423:doStrCat,[])
}
Add(Math,2484496,224,70)
{
OpType=6
Op2=1
ResultType=0
link(onResult,11522524:doWork1,[(270,76)])
}
Add(Convertor,12105650,427,182)
{
Mode=8
Digits=32
link(onResult,827854:doCopy,[])
}
Add(Math,15606406,385,182)
{
ResultType=0
link(onResult,12105650:doConvert,[])
link(Op2,7593973:m,[(398,35)(41,35)])
}
Add(Convertor,3869611,343,182)
{
Mode=7
link(onResult,15606406:doOperation,[])
link(Data,14522169:Var3,[(349,166)])
}
Add(Length,8871451,301,182)
{
link(onLength,3869611:doConvert,[])
link(Str,14522169:Var2,[])
}
Add(Copy,827854,469,182)
{
Position=1
Direction=1
link(onCopy,11560228:doValue,[])
link(Count,8871451:Result,[(489,166)(421,166)(421,224)(307,224)])
}
Add(StrCat,9473565,637,266)
{
Point(doClear)
link(Str2,7618875:Var3,[(650,254)(685,254)(685,306)])
}
Add(GetDataEx,7618875,637,301)
{
link(Data,9473565:Result,[])
}
Add(Hub,12693982,679,322)
{
OutCount=4
link(onEvent1,7593973:onGray,[(712,328)(712,125)])
link(onEvent2,9473565:doClear,[(705,335)(705,236)(624,236)(624,279)])
link(onEvent3,8341423:doClear,[(719,342)(719,105)(290,105)(290,139)])
link(onEvent4,8019973:doClear,[(726,349)(726,232)(153,232)(153,83)])
}
Add(Copy,10647580,427,266)
{
Count=1
link(onCopy,13227359:doValue,[])
link(Str,6964744:Var1,[(433,243)])
}
Add(For,13776477,329,266)
{
End=2
Step=-1
InData=0
link(onEvent,2886688:doOperation,[])
link(onStop,6035302:doCopy,[(373,279)(373,328)])
}
Add(Length,7477190,567,182)
{
link(onLength,13776477:doFor,[(613,188)(613,228)(307,228)(307,272)])
}
Add(Math,2886688,378,266)
{
OpType=1
Op2=1
ResultType=0
link(onResult,10647580:doCopy,[])
}
Add(Math,1322430,581,266)
{
OpType=6
Op2=1
ResultType=0
link(onResult,9473565:doStrCat,[])
link(Op2,13227359:Value,[(594,254)(560,254)(560,309)(475,309)])
}
Add(Memory,13227359,469,266)
{
link(onData,14465812:doCopy,[])
}
Add(Copy,14465812,518,266)
{
Count=1
link(onCopy,1322430:doOperation,[])
link(Str,6964744:Var2,[])
link(Position,13776477:Position,[(531,254)(421,254)(421,309)(335,309)])
}
Add(Copy,6035302,567,322)
{
Position=1
Count=1
link(onCopy,6006016:doStrCat,[])
link(Str,6964744:Var3,[(573,243)])
}
Add(Memory,11560228,518,182)
{
link(onData,7477190:doLength,[])
}
Add(StrCat,6006016,630,322)
{
Point(doClear)
link(onStrCat,12693982:doEvent1,[])
link(Str2,7618875:Var2,[])
}
Add(GetDataEx,6964744,518,238)
{
link(Data,11560228:Value,[])
}
Add(IndexToChanel,4446164,112,63)
{
Point(Index)
link(onEvent2,8019973:doOperation,[])
link(Index,14012731:Part,[(118,51)(86,51)(86,163)(55,163)])
}
Add(Math,8019973,168,70)
{
OpType=6
Op1=1
ResultType=0
Default=1
Point(doClear)
link(Op2,5457149:Var3,[(181,58)(205,58)(205,110)])
}
Add(GetDataEx,5457149,168,105)
{
link(Data,8019973:Result,[])
}
END_SDK

Решение от miver:
Add(MultiElementEx,3557107,280,476)
{
@Hint=#8:задача 1|5:miver|12:Старшая Лига|
AddHint(44,54,72,39,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,7593973,21,21)
{
WorkCount=#6:doGray|
EventCount=#6:onGray|
DataCount=#1:m|1:w|
Width=440
Height=242
VOffset=100
HOffset=100
link(doGray,10169632:doEvent1,[])
}
Add(Length,9179640,128,198)
{
link(onLength,8646012:doCalc,[])
link(Str,4253736:Var2,[])
}
Add(MathParse,8646012,182,198)
{
DataCount=3
MathStr="(%2+%3) mod 2^%1 "
ResultType=0
link(onResult,4931482:doOperation,[])
link(X2,7593973:m,[(195,168)(127,168)])
link(X3,3579672:Var1,[(202,175)])
}
Add(Convertor,9070429,332,198)
{
Mode=8
Digits=100
link(onResult,1900156:doCopy,[])
}
Add(Hub,10169632,49,121)
{
OutCount=4
link(onEvent1,6985441:In,[])
link(onEvent2,8861996:doConvert,[(116,134)(116,47)])
link(onEvent3,10079111:doRepeat,[])
link(onEvent4,9179640:doLength,[(95,148)(95,204)])
}
Add(GetDataEx,4253736,128,28)
{
link(Data,7593973:w,[])
}
Add(Copy,1900156,378,198)
{
Position=1
Count=4
Direction=1
link(onCopy,7593973:onGray,[(436,204)(436,127)])
link(Count,9179640:Result,[(398,186)(417,186)(417,243)(134,243)])
}
Add(Math,7771939,286,198)
{
OpType=6
ResultType=0
link(onResult,9070429:doConvert,[])
link(Op1,8646012:Result,[(292,189)(225,189)(225,237)(188,237)])
}
Add(Math,4931482,237,198)
{
OpType=7
Op2=2
ResultType=0
link(onResult,7771939:doOperation,[])
}
Add(Repeat,10079111,211,135)
{
Type=2
Op2=Integer(0)
link(onRepeat,561577:doOperation,[])
link(Op1,15813057:Var2,[])
link(Op2,13878714:Value,[])
}
Add(Memory,14214588,211,41)
{
Point(Data)
}
Add(Math,561577,294,135)
{
OpType=6
ResultType=0
Point(doClear)
link(onResult,11305082:doOperation,[])
link(Op1,4157552:Var2,[])
link(Op2,3579672:Var3,[(307,127)(332,127)(332,175)])
}
Add(GetDataEx,15813057,211,118)
{
link(Data,14214588:Value,[])
}
Add(Math,11305082,347,135)
{
OpType=7
Op2=2
ResultType=0
link(onResult,519505:doWork1,[(395,141)(395,38)(193,38)])
link(Op1,4157552:Var3,[(353,123)])
link(Op2,11513838:Value,[])
}
Add(Memory,13878714,218,84)
{
Default=Integer(0)
}
Add(HubEx,519505,189,41)
{
link(onEvent,14214588:doValue,[])
}
Add(GetDataEx,4157552,294,118)
{
Angle=3
link(Data,15813057:Var3,[])
}
Add(Memory,11513838,354,84)
{
Default=Integer(2)
}
Add(Convertor,8861996,148,41)
{
Mode=7
Digits=100
link(onResult,519505:doWork2,[])
link(Data,4253736:Var3,[(154,33)])
}
Add(LineBreak,7401217,253,142)
{
Caption="cl"
link(Out,561577:doClear,[])
Primary=[6985441,-176,-21]
}
Add(GetDataEx,3579672,294,170)
{
link(Data,561577:Result,[])
}
END_SDK

В данном случае победителя определить оказалось невозможно (в пределах 1 sigma времена совпадают). Предлагаю поделить первое место поровну между победителями (по +25 ћ каждому). К посту прикреплен архив с тестовой схемой и протоколом тестирования nesco-miver.

Дополнительный приз ( +20 ћ) в категории "зрительских симпатий" получает miver

карма: 1

0
файлы: 1task1.zip [8.5KB] [316]