Добро пожаловать в сеть Intel® Software Network вход | зарегистрироваться | помощь |
Поиск в форумах и блогах Intel® Software Network
в Вперед

Немаловажная проблемка, для малой части времени исполнения

Последнее сообщение 12-22-2007, 7:07 размещено mt2. Ответов - 3.
Сортировать сообщения: Назад Вперед
 12-15-2007, 19:54 30220983  

Немаловажная проблемка, для малой части времени исполнения

Дублирую вопрос с английского форума, чтобы быстрей получить ответ.

В тексте задания нам предложен следующий шаблон:

start = GetTime;

ComputeRoomAssignments(Rooms, N);

End = GetTime;

ComputeRoomAssignments может быть такой:

 Repeat

    DoSomething;

Until GetTime-start>=TimeLimit;

Finalize;

Return;

 

Если TimeLimit=120, то End может оказаться больше120, например, 120 сек 50 мсек. Будет ли эта ситуация допустимой, или же мы должны определить константу TimeLimit равной 119 сек, или 118 сек?

 

 
 12-20-2007, 12:21 30220989 в ответ на30220983  

На: Немаловажная проблемка, для малой части времени исполнения

Ну вот подошел срок сдачи задания, а официального разъяснения я так и не получил, ни здесь, ни на американском форуме :((
 
 12-21-2007, 11:26 30220995 в ответ на30220989  

На: Немаловажная проблемка, для малой части времени исполнения

А что если DoSomehing требует больше 5 секунд?

Я бы сделал так:

Do While GetTime-start <  TimeLimit

    MakeOutput;

    DoSomething;

Repeat

 

В задании сказано: если ваше приложение вычисляет результат дольше, чем 120 секунд, конкурсные баллы не начисляются, то есть жюри может не начислить баллы даже если время выполнения 120.001. В моем примере ВЫЧИСЛЕНИЯ точно не будут происходить после истечения лимита времени, остальное - на ваше усмотрение.


Дмитрий Оганезов
Intel® Software Network
 
 12-22-2007, 7:07 30221008 в ответ на30220995  

На: Немаловажная проблемка, для малой части времени исполнения

MAD\doganezo:

А что если DoSomehing требует больше 5 секунд?

Я бы сделал так:

Do While GetTime-start <  TimeLimit

    MakeOutput;

    DoSomething;

Repeat

 

В задании сказано: если ваше приложение вычисляет результат дольше, чем 120 секунд, конкурсные баллы не начисляются, то есть жюри может не начислить баллы даже если время выполнения 120.001. В моем примере ВЫЧИСЛЕНИЯ точно не будут происходить после истечения лимита времени, остальное - на ваше усмотрение.

Очень хорошее решение. Вот только в искусственных условиях конкурса такой частый вывод данных понизит производительность.

 

Если, например, процедура  DoSomething каждый раз берет наугад 2 комнаты и сравнивает их, делая при необходимости переселение студентов, то каждый раз она будет тратить примерно равное время, заведомо << 5 сек. И даже << 0.05 сек.

 

По данному вопросу хотелось бы также знать официальное мнение судей.

 
Просмотреть как поток новостей RSS в XML

Ярлыки


Тег для данного сообщения

...

Теги сообщества

...