Comments 19
Зачем тексты задач картинками?
Теплые, ламповые, как в буклете — для напоминания о конфе. В прошлый раз так же делали. Уже можно считать традицией.
Тот же вопрос задавали в прошлый раз: https://habrahabr.ru/company/gridgain/blog/327732/
Хотя я согласен, что картинкой не очень хорошо, не индексируется поисковиками, не скопировать.
Если убрали под кат решение, могли бы туда же и оригинал текста для нуждающихся
<зануда>
по моему не совсем корректное решение (либо формулировка) первой задачи:
в вопросе формулировку "чтобы до конца дня было написано 100 строк кода" — можно трактовать как не менее 100 строк (т.е. если написано 101 строка значит и 100 написано)
соответственно в начальных условиях изменяется f(x) >= 100 строк / 60 минут
и решение сводится к двум неравенствам:
f(x) >= 100/60 — чтобы скорость позволяла написать 100 строк за 1 час
243/x = t <= 60 — чтобы за час сделать успеть сделать 243 кивка
из первого: 1+sqrt(x) >=5/3 | x >= 4/9 (~ 0,4444)
из второго: 243/60 <= x | x >= 81/20 ( 4,05 )
получаем x >= 4,05
Т.е. при любой частоте выше 4,05 (кивка в минуту) условия выполняются
</зануда>
по моему не совсем корректное решение (либо формулировка) первой задачи:
в вопросе формулировку "чтобы до конца дня было написано 100 строк кода" — можно трактовать как не менее 100 строк (т.е. если написано 101 строка значит и 100 написано)
соответственно в начальных условиях изменяется f(x) >= 100 строк / 60 минут
и решение сводится к двум неравенствам:
f(x) >= 100/60 — чтобы скорость позволяла написать 100 строк за 1 час
243/x = t <= 60 — чтобы за час сделать успеть сделать 243 кивка
из первого: 1+sqrt(x) >=5/3 | x >= 4/9 (~ 0,4444)
из второго: 243/60 <= x | x >= 81/20 ( 4,05 )
получаем x >= 4,05
Т.е. при любой частоте выше 4,05 (кивка в минуту) условия выполняются
</зануда>
Предположим следующее условие: от светофора до светофора машина проехала 100 метров. С какой средней скоростью ехала машина, если от момента включения разрешающего сигнала первого светофора до остановки на запрещающий сигнал светофора прошло ровно 10 секунд.
В данном случае в тоже посчитаете, что здесь может быть 101 метр или больше? )))
ИМХО, если в условии написано что было столько то, то «по-умолчанию» это означает «ровно».
В данном случае в тоже посчитаете, что здесь может быть 101 метр или больше? )))
ИМХО, если в условии написано что было столько то, то «по-умолчанию» это означает «ровно».
в задаче смутило незаконченное действие "… чтобы до конца дня было ..." (привет английским временам))
в вашем примере есть утверждение «проехала 100 метров», что воспринимается по другому. А вот если переформулировать задачу как: "с какой средней скоростью должна ехать машина чтобы остановится (или например "не остановиться") на следующем светофоре, который расположен через 100 метров, при условии что запрещающий сигнал светофора загорится через 10 секунд", ответ измениться ?))
возвращаясь к исходной задаче, с контекстом «равно» вопрос лучше бы ассоциировался в утвердительной форме, например "С какой частотой одобрительно кивала Моника, если в конце рабочего дня было написано 100 строк кода и сделано 243 одобрительных кивка"
вышеописанное ИМХО, и видимо из серии «у каждой задачи есть простое, красивое, легко-понимаемое, но неправильное решение».
в вашем примере есть утверждение «проехала 100 метров», что воспринимается по другому. А вот если переформулировать задачу как: "с какой средней скоростью должна ехать машина чтобы остановится (или например "не остановиться") на следующем светофоре, который расположен через 100 метров, при условии что запрещающий сигнал светофора загорится через 10 секунд", ответ измениться ?))
возвращаясь к исходной задаче, с контекстом «равно» вопрос лучше бы ассоциировался в утвердительной форме, например "С какой частотой одобрительно кивала Моника, если в конце рабочего дня было написано 100 строк кода и сделано 243 одобрительных кивка"
вышеописанное ИМХО, и видимо из серии «у каждой задачи есть простое, красивое, легко-понимаемое, но неправильное решение».
Я на конференции тоже поучаствовал в решении этих задач, в результате у меня была зачтена только одна задача — вторая. Выглядели все задачи довольно просто, поэтому, признаться, хотелось понять, в чём подвох.
Как решал я:
1. В первой задаче меня смутила слабая обратная зависимость (Моники от Билла) и смутное понимание, чем она будет заниматься в кабинете остаток рабочего дня, если Билл уйдёт раньше. Я для гарантии решил ужесточить условие, поскольку задача это позволяла и стал искать решение, чтобы 243-й кивок завершился ровно в момент окончания рабочего дня и точно в этот же момент Билл должен написать сотую строку кода. Понятно, что для достижения такого результата Моника не могла кивать весь час с постоянной частотой, но по условию задачи такого ограничения не стояло. Таким образом, в качестве ответа нужно предложить такую функцию кивания Моники x(t), чтобы
— интегрирование функции x(t) от 0 до 60 давало 243 и при этом
— интеграл f(t) = 1 + sqrt(x(t)) от 0 до 60 дал бы 100.
Очевидно, существует бесконечное множество подходящих функций и мы свободны в их выборе. Я пошёл простейшим путём и выбрал ступенчатую функцию
x(t) = { 0 при t < T; X = const при t > T }.
Т.е. Моника сначала не делает ничего, а потом начинает кивать с постоянной частотой так, чтобы Билл закончил точно к концу рабочего дня.
Введем T’ = 60 — T — это продолжительность кивания Моники и получается несложная система
T’ * X = 243
T’ * sqrt(X) = 40 (поскольку остальные 60 строк Билл напишет за этот час без помощи Моники)
Отсюда X = (243/40)2 ~= 36,9 кивков в минуту, T’ = 402 / 243 ~= 6,58 минут.
Получается, Моника начинает ободрять Билла в конце рабочего дня с частотой примерно раз в две секунды и тогда Билл за шесть минут справляется с условиями задачи. Такие величины настолько рифмуются с антуражем задачей, что я подумал, что числа условия подобрали в расчете именно на такую форму функцию частоты.
Однако мой ответ не зачли, хотя он отлично подходит, как и множество других.
2. Вторую задачу, как я сказал, зачли — ответ совпал. Хотя я беспокоился из-за слов условия
“…по аналогии с 16-ричной системой, только помимо цифр будут использоваться…”.
Дело в том, что a, b, c, d, e, f в 16-ричной системе вполне цифры (в системе счисления нет “букв”) и я не был уверен, брать ли мне помимо кириллицы десять цифр или шестнадцать. Взял десять и угадал.
3. Про третью задачу я думал, что допустил ошибку из-за неправильного понимания, что такое “флоп” (я, увы, незнаком с правилами покера) и в игре происходило что-то другое. Но оказалось, причина куда проще. Я дал ответ 171 / 103776. Несложно заметить, что это та же самая дробь 6156 / 3735936. Кстати, тогда я не заметил, что дробь можно сократить ещё на 3, до 57 / 34592. В любом случае, в этой задаче мой ответ тоже был правильными.
На мой взгляд, есть некоторые проблемы с однозначностью условий задач и поверхностной проверкой ответов. В любом случае спасибо за этот пост, он развеял мистику.
Как решал я:
1. В первой задаче меня смутила слабая обратная зависимость (Моники от Билла) и смутное понимание, чем она будет заниматься в кабинете остаток рабочего дня, если Билл уйдёт раньше. Я для гарантии решил ужесточить условие, поскольку задача это позволяла и стал искать решение, чтобы 243-й кивок завершился ровно в момент окончания рабочего дня и точно в этот же момент Билл должен написать сотую строку кода. Понятно, что для достижения такого результата Моника не могла кивать весь час с постоянной частотой, но по условию задачи такого ограничения не стояло. Таким образом, в качестве ответа нужно предложить такую функцию кивания Моники x(t), чтобы
— интегрирование функции x(t) от 0 до 60 давало 243 и при этом
— интеграл f(t) = 1 + sqrt(x(t)) от 0 до 60 дал бы 100.
Очевидно, существует бесконечное множество подходящих функций и мы свободны в их выборе. Я пошёл простейшим путём и выбрал ступенчатую функцию
x(t) = { 0 при t < T; X = const при t > T }.
Т.е. Моника сначала не делает ничего, а потом начинает кивать с постоянной частотой так, чтобы Билл закончил точно к концу рабочего дня.
Введем T’ = 60 — T — это продолжительность кивания Моники и получается несложная система
T’ * X = 243
T’ * sqrt(X) = 40 (поскольку остальные 60 строк Билл напишет за этот час без помощи Моники)
Отсюда X = (243/40)2 ~= 36,9 кивков в минуту, T’ = 402 / 243 ~= 6,58 минут.
Получается, Моника начинает ободрять Билла в конце рабочего дня с частотой примерно раз в две секунды и тогда Билл за шесть минут справляется с условиями задачи. Такие величины настолько рифмуются с антуражем задачей, что я подумал, что числа условия подобрали в расчете именно на такую форму функцию частоты.
Однако мой ответ не зачли, хотя он отлично подходит, как и множество других.
2. Вторую задачу, как я сказал, зачли — ответ совпал. Хотя я беспокоился из-за слов условия
“…по аналогии с 16-ричной системой, только помимо цифр будут использоваться…”.
Дело в том, что a, b, c, d, e, f в 16-ричной системе вполне цифры (в системе счисления нет “букв”) и я не был уверен, брать ли мне помимо кириллицы десять цифр или шестнадцать. Взял десять и угадал.
3. Про третью задачу я думал, что допустил ошибку из-за неправильного понимания, что такое “флоп” (я, увы, незнаком с правилами покера) и в игре происходило что-то другое. Но оказалось, причина куда проще. Я дал ответ 171 / 103776. Несложно заметить, что это та же самая дробь 6156 / 3735936. Кстати, тогда я не заметил, что дробь можно сократить ещё на 3, до 57 / 34592. В любом случае, в этой задаче мой ответ тоже был правильными.
На мой взгляд, есть некоторые проблемы с однозначностью условий задач и поверхностной проверкой ответов. В любом случае спасибо за этот пост, он развеял мистику.
vltksk давайте сделаем так, мы сейчас найдем ваш квиток с решениями и внимательнее его посмотрим. Если была ошибка с нашей стороны в ходе проверки (ну всякое бывает), с нас причитается. Имя-фамилию в профиле вижу, проблем быть не должно.
vltksk нашли ваши решения. Вторая задача решена верно, первая и третья — нет.
Если говорить о первой задаче, нам казалось, что условие задачи достаточно точно подразумевает, что частота кивков Моники является константой. В следующий раз будем использовать более полную формулировку. Далее цитирую коллег из R&D:
Но, у нас есть для вас утешительный приз за активность — отправила письмо на mail, указанный в квитке. Давайте продолжим там.
Если говорить о первой задаче, нам казалось, что условие задачи достаточно точно подразумевает, что частота кивков Моники является константой. В следующий раз будем использовать более полную формулировку. Далее цитирую коллег из R&D:
Если расширять область допустимых решений на не константные функции, то очевидно, что решений будет бесконечно много. В общем случае, если частота кивков Моники зависит от времени как функция x=x(t) и x(t) интегрируема на [0, 60], то количество строк кода, написанное Биллом за час будет (формула 1) и x(t) можно искать как решение интегрального уравнения (формула 2).
Так, можно найти одно из решений, если частоту кивкнов Моники искать в виде x(t) = k * t^2. В этом случае интеграл берется и коэффициент k легко вычисляется.
При такой интерпретации Ваше решение не полное, и именно поэтому мы не засчитали его как правильное.
Но, у нас есть для вас утешительный приз за активность — отправила письмо на mail, указанный в квитке. Давайте продолжим там.
К сожалению, я должен написать ещё один, очень надеюсь, что последний, комментарий на эту тему. У меня правда, как это сейчас говорят, “подгорает”, куда сильнее, чем проблема этого заслуживает и мне теперь придётся с этим как-то жить.
Давайте подведём итоги и действительно прекратим это. После повторной внимательно проверки вы повторили, что правильно решена вторая задача, а первая и третья — неверно. По моей просьбе вы прислали мне по почте фото моего квитка, за что огромное спасибо, я боялся, что схожу с ума, но там всё так, как я и помнил.
По первой задаче:
мне указали, что при использовании произвольной функции частоты кивания Моники решений возможных задачи бесконечно много.
Да, это очевидно.
мне заявили, что в случае, если решений бесконечное количество, никакое частное решение не может быть засчитано.
Это не так, поскольку частное решение остаётся решением, но спорить об этом, действительно, больше не стоит.
По третьей задаче:
Я писал в первом же комментарии, что я указал решение 171 / 103776.
В присланном фото квитка действительно указан ответ 171 / 103776.
В посте правильным ответом указано 6156 / 3735936.
Итак, поскольку состоялась повторная внимательная проверка, то ничего не остается, как считать эти дроби разными. Например, сходу видно, что в “6156 / 3735936” больше символов, чем “171 / 103776” и начинается одна с “6”, а другая с “1”.
С третьей, пожалуй, тоже закончили.
Давайте подведём итоги и действительно прекратим это. После повторной внимательно проверки вы повторили, что правильно решена вторая задача, а первая и третья — неверно. По моей просьбе вы прислали мне по почте фото моего квитка, за что огромное спасибо, я боялся, что схожу с ума, но там всё так, как я и помнил.
По первой задаче:
мне указали, что при использовании произвольной функции частоты кивания Моники решений возможных задачи бесконечно много.
Да, это очевидно.
мне заявили, что в случае, если решений бесконечное количество, никакое частное решение не может быть засчитано.
Это не так, поскольку частное решение остаётся решением, но спорить об этом, действительно, больше не стоит.
По третьей задаче:
Я писал в первом же комментарии, что я указал решение 171 / 103776.
В присланном фото квитка действительно указан ответ 171 / 103776.
В посте правильным ответом указано 6156 / 3735936.
Итак, поскольку состоялась повторная внимательная проверка, то ничего не остается, как считать эти дроби разными. Например, сходу видно, что в “6156 / 3735936” больше символов, чем “171 / 103776” и начинается одна с “6”, а другая с “1”.
С третьей, пожалуй, тоже закончили.
Интересная интерпретация условия первой задачи. Ты полностью оперся на формулу f(x) = 1 + sqrt(x). Вроде бы, можно принять x = 0 и тогда f(x) = 1 — const. Но условие состоит не только из одной формулы, у нее есть текст, который нельзя игнорировать.
В буклете слова «парным программированием» даже цветом выделены. Это означает, что Билл пишет код только тогда, когда Моника «помогает» ему )))
В буклете слова «парным программированием» даже цветом выделены. Это означает, что Билл пишет код только тогда, когда Моника «помогает» ему )))
Ты полностью оперся на формулу f(x) = 1 + sqrt(x).
Нет, я полностью оперся на условие.
...«парным программированием» даже цветом выделены. Это означает, что Билл пишет код только тогда, когда Моника «помогает» ему
Я не вижу ни малейших оснований так считать. Во-первых, в парном программировании код пишут не в четыре руки; в любой момент времени минимально обязательная цель второго — наблюдать, что решается просто присутствием Моники. Во-вторых, «выделение цветом» не несёт никакой смысловой нагрузки хотя бы потому, что тем же цветом выделены имена персонажей. В-третьих, мне у стенда подтвердили, что Билл и без Моники написал бы свои 60 строк, что идёт из формулы функции частоты.
Я как раз очень дотошно подошёл к тексту условия. Поэтому у меня не было уверенности, что Моника вообще перестанет кивать после ухода Билла, это я и имел в виду под отсутствием обозначенной связи поведения Моники от поведения Билла. И если дать ответ в виде числа, то получилось бы, что Моника будет кивать весь час, проигнорировав уход Билла, и кивнёт более 243 раз. Поэтому я стал в явном виде синхронизироваться на точке окончания рабочего дня.
В условии «написано 100 строк кода», но ты трактуешь, что может и больше.
В условии «до конца рабочего дня», но ты трактуешь, что именно в конце рабочего дня.
По моему у тебя неверная трактовка условий.
В условии «до конца рабочего дня», но ты трактуешь, что именно в конце рабочего дня.
По моему у тебя неверная трактовка условий.
В условии «до конца рабочего дня», но ты трактуешь, что именно в конце рабочего дня.
Судя по всему, это адресовано мне. Тогда я хотел бы на всякий случай обратить внимание, что я про превышение ста строк ничего не писал, ты путаешь меня с другим комментатором.
Далее, «именно в конце рабочего дня» является строгим подмножеством условия «до конца рабочего дня». Это более сильное условие, именно поэтому я написал в изначальном комментарии, что для гарантии решил ужесточить условие (а не изменить его), убрав неоднозначность, которую я достаточно подробно описал.
А поясните по второй задаче — почему 10+33, а не 33+6? Ведь говорится, что заменены будут цифры на буквы, а не латинские буквы на буквы русского алфавита
Sign up to leave a comment.
Тройка, семерка, джокер — разбор решения задач из буклета GridGain на конференции Joker 2017