Здравствуйте, Ватакуси, Вы писали:
В>Мне сказали, что "обычно" выполняют за 40 минут.
"И вы говорите".
В то, что алгоритм какой-нибудь сильный олимпиадник за 40 минут напишет, я могу поверить. Но, там кроме алгоритма еще вагон всякой мишуры будет.
Так что, реально тут работы на несколько дней, скорее всего.
В>Ну, и риторический вопрос — стали бы вы это делать?
Сильно в задание не вчитывался, если нет хитрой алгоритмики, то на Java HTTP API и WebSocket сделал бы на Spring дня за 3 (24 часа). За 40 минут я бы даже проект не настроил.
Здравствуйте, vsb, Вы писали:
vsb>Сильно в задание не вчитывался, если нет хитрой алгоритмики, то на Java HTTP API и WebSocket сделал бы на Spring дня за 3 (24 часа). За 40 минут я бы даже проект не настроил.
В .Net есть стандартный шаблон для вебсервиса сидящего в докере, так что тут надо только реализовать алогритм. Наверно за пару часов можно.
8 часов минимум, но скорей всего 16. Нет смысла писать половинчатое решение, ну а если делать продуктовое качество, то меньше 8 точно не будет. А при их постановке требований сами собой напрашиваются не только модульные, но и интеграционные тесты, так что там работы реально много.
В>Ну, и риторический вопрос — стали бы вы это делать?
Если бы их устроил мой расчет времени + у них действительно хорошая ЗП, то да, делал бы.
Здравствуйте, Lexey, Вы писали:
L>Здравствуйте, Ватакуси, Вы писали:
В>>Мне сказали, что "обычно" выполняют за 40 минут.
L>"И вы говорите". L>В то, что алгоритм какой-нибудь сильный олимпиадник за 40 минут напишет, я могу поверить. Но, там кроме алгоритма еще вагон всякой мишуры будет.
Да ладно. Там нужно прикрутить прикрутить оптимизационный solver (какой-нить minimax). За 24 часа можно уложиться- это часа 2-3 на почитать википедию, реализовать алгоритм и отладить еще 2-3 часа.
L>Так что, реально тут работы на несколько дней, скорее всего.
В>>Ну, и риторический вопрос — стали бы вы это делать?
L>Нет.
Если нужна работа и задачка намекает на интересные задачи в команде, то почему бы нет? Если жесткий лимит 40 минут, то я бы не стал начинать- без вариантов.
Здравствуйте, Ватакуси, Вы писали:
В>Мне сказали, что "обычно" выполняют за 40 минут.
4-8 часов. Очень сильно зависит от алгоритма. Некоторые сложности есть в том, что нет граничных условий (т.е. сколько станций, максимально допустимое количество требуемой энергии и т.п.). В условиях их samples скорее всего будет динамическое программирование по Cost(количество требуемой энергии, используемые станции (только первая, первая-вторая, первая-вторая-третья и т.д.)). Из этого большая часть — на продумать/протестировать алгоритм. Если спешить и делать быстро — 40 минут максимум на алгоритм + 30 на обвязку (приложение), минимум автоматических тестов. Но это — олимпиадный режим. Неторопясь — от 2-х часов минимум.
Что входит в обвязку (и что я реально использую):
Многомодульный sbt project
Scala
Jetty server, старт и конфигурация кодом. Один handler
Своя json library в виде модуля
Парсинг данных в объекты, сериализация
fat jar build (sbt-assembly plugin)
Integration test в виде штатной sbt configuration.
Какие-нибудь первые интеграционные тесты на основе scalatest + java URLConnection (и небольшой обвязки, чтобы повторяющиеся вещи сделать более удобными). Конкретные тесты уже будут по ходу функциональности/алгоритма делаться если надо.
Это с нуля совершенно не торопясь делается максимум за час (включая поиск забытых ключиков в интернете). В этот же час можно написать короткую инструкцию о том, как запустить sbt assembly и выполнить java -jar. Если есть готовый проект-донор — 5-10 минут на все. Остальное — алгоритм и его тестирование.
В>Ну, и риторический вопрос — стали бы вы это делать?
В текущей ситуации — нет. Мне нужно книжку дописать сначала. И если я в состоянии думать, я лучше два часа потрачу на текст (за это время можно действительно много сделать), чем на решение задачки. Вот если бы у меня не было основной работы и был бы мой стек в вакансии — сделал бы.
$>Да ладно. Там нужно прикрутить прикрутить оптимизационный solver (какой-нить minimax). За 24 часа можно уложиться- это часа 2-3 на почитать википедию, реализовать алгоритм и отладить еще 2-3 часа.
What? Решать дискретную задачу о рюкзаке минимаксом или оптимизационным solver'ом? Удачи
Если не понятно, откуда там рюкзак: Даем на вход все станции wind. Они fixed cost, fixed energy (после умножения на 10 — вся энергия в выводе — целые числа). Нужно их напаковать на суммарную энергию за минимум денег.
Здравствуйте, Ватакуси, Вы писали:
В>Ну, и риторический вопрос — стали бы вы это делать?
Нет смысла даже пытаться решать бессмысленную задачу.
Во-первых, генерация ветроэлектростанций не зависит от наличия или отсутствия хотелок.
Во-вторых, регулирование мощности теплоэлектростанций возможно очень в небольших пределах. Даже работающая без нагрузки будет жрать топливо.
Здравствуйте, maxkar, Вы писали:
M>What? Решать дискретную задачу о рюкзаке минимаксом или оптимизационным solver'ом? Удачи
M>Если не понятно, откуда там рюкзак: Даем на вход все станции wind. Они fixed cost, fixed energy (после умножения на 10 — вся энергия в выводе — целые числа). Нужно их напаковать на суммарную энергию за минимум денег.
Автор задачки прямо написал, что они сами используют
For calculating the unit-commitment, we prefer you not to rely on an existing (linear-programming) solver but instead write an algorithm yourself.
Т.е. нужно сначала понять, какой solver подходит под эту задачу (и это может быть пример из учебника operation research), и накидать его на коленке из подручных материалов. Уровень "что нельзя использовать" тут непонятен- например, numpy можно использовать? Перемножение матриц вручную весьма медленное, но с numpy это влёт. Веб сервис с POST, надеюсь, тоже можно использовать готовые библиотеки.
Здравствуйте, kaa.python, Вы писали:
L>>Нет смысла даже пытаться решать бессмысленную задачу. KP>Но ведь любое тестовое задание бессмысленное, так как если оно осмысленное, то возникают обвинения в попытке реализовать бизнес-логику на халяву.
С опытом все сложнее становится.
Слишком часто приходит задача с формулировкой "нам нужно семь перпендикулярных линий", а через две недели дознаний выясняется, что хотели покрасить входную дверь в синий цвет.
Это же олимпиадная задача. Там нужно реализовать что-то типа решения задачи о рюкзаке.
Не олимпиадник конечно за 40 минут не выдаст такое решение. Олимпиадник вполне может.
Обвязка про докер и вебсокеты, а также хитрого вида входные данные, нужны чтобы чистых олимпиадников как раз отсеить.
Так что за 40 минут смогут единицы сделать.
Здравствуйте, Ватакуси, Вы писали:
В>Мне сказали, что "обычно" выполняют за 40 минут.
За 40 минут там будет обычный олимпиадный говнокод, совершенно непонятно что с его помощью можно показать работодателю. Что умеешь наговнокодить, если очень припрёт? Сомнительный плюс.
В>Ну, и риторический вопрос — стали бы вы это делать?
Нет. Я уже не в том возрасте, чтобы делать тестовые задания.
$>Да ладно. Там нужно прикрутить прикрутить оптимизационный solver (какой-нить minimax).
Там явно написано в условии, что готовые солверы не использовать. Если ты под солвером понимаешь какой-нибудь градиентный спуск из общедоступных библиотек, то такое, по идее, можно использовать. Вот только, как ты будешь целочисленность отдельных переменных обеспечивать?
$>За 24 часа можно уложиться- это часа 2-3 на почитать википедию, реализовать алгоритм и отладить еще 2-3 часа.
24 часа — это и есть 3-4 дня, внезапно. Ибо рвать жопу круглыми сутками никто в здравом уме не будет.
L>>Нет.
$>Если нужна работа и задачка намекает на интересные задачи в команде, то почему бы нет? Если жесткий лимит 40 минут, то я бы не стал начинать- без вариантов.
Мне жалко тратить несколько дней своей жизни на тестовое задание. И необходимости в поиске новой работы у меня сейчас нет (в последние несколько лет она меня находит).