Часто при приеме на работу встречается задача про сгибание листка
Есть полоска бумаги, мы ее сворачиваем пополам (оговорка сворачиваем всегда в одну сторону), и получается изгиб на бумаге, изгиб углом он вас (или выпуклый), обозначаем его за 0, теперь опять сворачиваем уже свернутую полоску 2 раз, на полоске теперь появляются новые изгибы, углом к нам обозначаем 1, углом от нас опять 0. в итоге у нас строка 1 0 0 (3 изгиба.)
Задание заключается в том чтобы написать функцию возвращавшую бы нам строчку в зависимости от начального заданного числа изгибов полоски.
Я через описание так и не пробился, все слова понимаю смысл нет
(0) Какой упоротый дебил из руководятлов даёт такие задания и к чему это в торговой шарашке?
Задача на 15 минут.

+ за вечернее разминание мозгов
😀
(2) При приеме на работу в рарус=)
(5) теперь понятно почему у них в программах при перерасчете налогов — считает количество углов в процентах.
(5)(6) Теперь понятно, почему в их поделиях .овнокода чуть больше чем полностью и работает через ту самую.
(5)теперь понятно почему у них такие бумажки все мятые…
p.s. может они туалетную бумагу таким образом производят )
«изгиб углом он вас» — это как?
(0) Вы в курсе что больше семи раз не сложишь в реальности?)))) Любой размер любой бумаги)))
Ну в реале скорее всего трудно
(7) через ту самую — это .онокод-Style компании.. Имидж такой…
(10) venger,
Для этого и нужна обработка )
(13) Значит я не понял суть обработки, как она может это показать? Если в двух словах? я так понял она может до бесконечности строку формировать, плоскость то в математике толщины не имеет))))
+14, точку можно по идее математически до бесконечности пополам складывать)))
Я тоже из описания публикации мало что понял. Если в Рарусе на собеседовании такими же словами ставят задачу, то у них просто бешеный отсев должен быть. Наверно, смысл этой задачи на собеседовании не в том, чтобы кандидат ее решил, а чтобы он ее хотя бы понял. Если проблеск понимания в глазах появился — наш человек, берем!
А я, получается, «не наш».
(16) Есть рациональное зерно в тесте тогда. Развитие телепатических навыков у программистов — основная проф обязанность.
Вот самое короткое(?) решение этой задачи в виде функции на 1С
Функция возвращает строку, в которой 0 — сгиб от нас, 1 — к нам. Первый параметр — необходимое число сложений, второй и третий параметры служебные. Всего в записи функции 77 символов. Не по-русски потому, что так короче.
(10) Видел телепередачу, где устанавливали рекорд числа сложений очень длинного рулона бумаги. Речь шла о 10-ти или 11-ти сложениях.
(19) А плотность/толщина бумаги? Вот если взять полиграфию, то любой формат A6, A4, A3 десять раз не сложишь даже прессом)))
Господа, пошарьте у себя в офисах бумагу, поскладывайте, тогда сразу все вопросы отпадут))))
(0) Я думаю, что смысл теста тогда такой: построить математическую модель, показать что она не состоятельна в реальности, предложить физическую модель, с учетом того, что сгиб и бумага имеет толщину и жесткость, а бумага при определенной толщине (при складывании толщина увеличивается) приобретает жесткость такой степени, что нельзя уже продолжать сгибать, предложить коэффициенты и таблицы жесткости в зависимости от толщины/плотности, провести эксперименты, и доказать состоятельность физической модели. Итог: ищем программистов которые в состоянии двигать отечественную науку вперед))))) Кодить им не обязательно, физики-теоретики тоже нужны))))
(1) Я, тоже чой-то представить не могу, как это всё дело загибать надо. Пробовал на живой бумажке даже…
7 изгибов выходит. Или я не теми словами загибаю… фихзнает.
(23) Главное все время пополам
(18) Если предположить, что число сгибов не может быть отрицательным, то можно сэкономить еще 2 символа. Итого 75 символов. Можно ли короче?
(25) Тут не все понимают условие… а вы
p.s. моё (первое пришедшее в голову) решение с двумя циклами и списком значений не только длиннее вашего, но и работает в 4 раза медленнее(на 10 сгибах)
(0) Что-то было такое у Гарднера типа «Любознательная математика»
Если сложенную полоску бумаги развернуть так, чтобы углы всех изгибов были 90 градусов, то получится ломаная линия, называемая «линия дракона» N-го порядка, N = число изгибов. Если повернуть линию вокруг крайней точки на 90, 180 и 270 градусов, то исходная линия плюс три повернутых заполнять плоскость без пробелов.
(27) tdr1225, ага, это самое задание и есть.Только в рарусе еще и графически сейчас нужно нарисовать ….
(25) ildarovich, снимаю шляпу! у меня получился алгоритм с двумя функциями, наподобие топикстартеровского.
Кстати, Sbelyi78, в выкладываемых творениях код все же лучше «причесывать», а то неаккуратно как-то…
хорошая идея, сразу понравилась обработка, даже если и есть какие недочеты пока при использовании, не заметили))))
Начало — 0
1 сгиб — 00
2 сгиб — 001
3 сгиб — 0010011
4 сгиб — 001001110011011
5…..
Т.е то, что было, к ниму добавляется поочередно 0/1, затем то, что было на предыдущем шаге переписывается зеркально и инвертируется….а зная механику в цикле организовать заполнение массива 0 проблем))
(19) ildarovich,
Насколько я помню, речь шла о попеременных сгибах (как мы обычно складываем бумагу). А рулон, естественно, можно сложить побольше раз.
Это задачу давали на собеседовании в Рарусе в проектном отделе.
(25) ildarovich, Не вникая и не пробуя, подумалось:
На два символа короче, ввиду того, что второй параметр нигде при вызове функции не передаётся пустым. Если считать вместе с самим первым вызовом функции (W(k,0), вместо W(k)), то та же длина.
А если подумать, то вызов W(k,0) некрасивый 🙂
(34) ne_en, в комментарии/13/ к статье Минимализмы приведено еще более короткое решение от AWA. Вот оно
Показать
Днёмсогнём-вечеромразогнём! )