Здравствуйте, CodeMonkey, Вы писали:
CM>Не вижу ни одного возможного решения, которое имело бы хоть какой-то смысл CM>Кто-нибудь видит?
Кстати, конкретно эта задача на собеседовании имеет смысл. Основная идея — просто понимание что ты знаешь о таком приеме, как разделяй и властвуй.
Соответственно для тривиального случая возвращаешь исходный массив. Для вырожденного из двух элементов делаешь перестановку. Для основного случая дробишь на части, запускаешь над каждой частью в параллель рекурсивно обращение массива. Далее джоинишь результаты, итерируясь в обратном порядке. Это кстати можно сделать аналогично через рекурсию и на месте, правда будет выглядеть грязно.
Никакие разделяемые переменные ты тут не создаешь. Параллелизация есть. Рекурсия есть. Все условия выполняются. Правда алгоритмическая сложность кабздец какая стала, но чтоб не тормозило условий не было . Чтоб не тормозило, кстати, на практике там можно взять вырожденный случай не из двух элементов, а из миллиона. И вырожденный случай обрабатывать традиционным способом. И все, мы при этом даже ускорение легко сделали на количество ядер.
Мне задача понравилась тем, что она отсеет Артемку, не умеющего программировать, но зазубрившего типичные задачи и мнящего себя богом. И не оторвана от реальности, так как в реальности зачастую нужно весьма сложный алгоритм как то легко распараллелить, с минимальной модификацией исходного кода. Ибо исходный код может быть весьма сложен и запутанен. В результате на практике мы на некоторых алгоритмах получим ускорение, при этом хаос в коде становится не сильно ужаснее. И сделаем требуемое от нас быстро.
Здравствуйте, CodeMonkey, Вы писали:
CM>Не вижу ни одного возможного решения, которое имело бы хоть какой-то смысл CM>Кто-нибудь видит?
У меня возникла ассоциация с массивом который лежит в хдфс и цепочкой мап-редьюс задач для его обработки. На какую позицию спрашивают, чем заниматься предполагается?
Здравствуйте, elmal, Вы писали:
E>Кстати, конкретно эта задача на собеседовании имеет смысл. Основная идея — просто понимание что ты знаешь о таком приеме, как разделяй и властвуй. E> ...
Тут было всё верно.
E>Мне задача понравилась тем, что она отсеет Артемку, не умеющего программировать, но зазубрившего типичные задачи и мнящего себя богом. E> ...
А вот тут ты сильно не прав... я просто с ним работал пару лет. Очень приличный уровень как у разработчика, побольше б таких
Здравствуйте, CodeMonkey, Вы писали:
CM>Здравствуйте, Voivoid, Вы писали:
V>>Ну тогда наверное не затруднит его указать?
CM>Уже указал. http://rsdn.org/forum/job/7298592?tree=tree
Здравствуйте, CodeMonkey, Вы писали:
CM>Итак, задача. Нужно развернуть массив (именно массив). Но: CM>1. Сделать это при помощи рекурсии CM>2. Таким образом, чтобы это можно было распараллелить
Что такое распараллеливание?
CM>3. Не использовать никакие разделяемые переменные
Здравствуйте, RussianFellow, Вы писали:
RF>Что такое распараллеливание?
Это когда на собеседовании драться нужно одновременно с несколькими противниками.
RF>Что такое разделяемые переменные?
Это когда во время драки на собеседовании вы хватаетесь за стул, но за этот же стул одновременно хватается и ваш противник. В этом случае стул и будет той самой разделяемой переменной, своевременный захват которой обеспечит вам победу.
Здравствуйте, RussianFellow, Вы писали:
CM>>Итак, задача. Нужно развернуть массив (именно массив). Но: CM>>1. Сделать это при помощи рекурсии CM>>2. Таким образом, чтобы это можно было распараллелить
RF>Что такое распараллеливание?
Сейчас, подожди. Я дискету отформатирую и покажу.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Muxa, Вы писали:
RF>>>Что такое распараллеливание? КД>>Сейчас, подожди. Я дискету отформатирую и покажу. M>Эту шутку он не поймёт.
Если меня склероз не подводит, то по возрасту RF должен был застать fido. Эта шутка там ходила.
И что-то мне подсказывает, что он вас троллит самым откровенным образом
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, sr_dev, Вы писали:
_>У меня возникла ассоциация с массивом который лежит в хдфс и цепочкой мап-редьюс задач для его обработки. На какую позицию спрашивают, чем заниматься предполагается?
CM>Я написал совершенно конкретно, в каких условиях возможно писать без блокировки и почему у тебя это невозможно.
А это нарушение какого из трех пунктов?