![]() |
Задачка на математику и логику.
В общем, т.к. у нас в компании я второй по должности (но это мне не мешает решать всё за себя самостоятельно и быть независимым), я не провожу тесты на приём на работу, но яро стараюсь участвовать в анализе кода, который пишут "тестируемые".
В общем т.к. это делается на форуме, задачка на честность - использовать средства разработки - нельзя. Пишите псевдокод сразу тут но обязательно оберните в тег "оффтоп". Затем чтобы те кто заинтересуются задачкой, не смотрели на чужой результат прежде чем начинать свой. Правила: 1. Писать пседво-код решения задачки в теге OFFTOP. 2. Использовать компиляторы или калькуляторы не разрешается, будьте честными для собственного спортивного интереса. 3. Проверять конечный результат в компиляторе не разрешается. Тут важен поток мысли и идеи, а не сам результат, т.к. естественно в нормальных условиях будет проверено. Если не допустите сильных логических и математических ошибок - плюс, но не сильно влияет на саму суть теста. Задача: Объявить двумерный массив m[x,y], размерностью 5x5. Заполнить массив m числами делимыми на 5, от 5 до 100 (включая) (пример: 5, 10,15 ... 85, 90, ...) в массив пробегаясь по x и y последовательно. Пример: (i1 - m[1,1], i2 - m[1,2], ... , i8 - m[2,3], ...) (in - итерации). Вывезти на экран координату в массиве (x,y) по которым в массиве m будет одно из чисел: 20, 40, 60, 80, 100. В такой форме: "m[x,y] = a" (заменить x,y на координаты, и a на число которое соответствует запрашиваемым). Ожидаемый результат на экране: Код:
m[0,3] = 20Потом можно будет вместе разобрать варианты ответов и описать ошибки, ошибки "приветствуются" ;) |
Ответ: Задачка на математику и логику.
Язык не важен?
|
Ответ: Задачка на математику и логику.
FireOwl, можно писать на чём угодно.
Вот немного комментариев по задаче и коду, моё имхо: ЗЫ, тоже на C# пишу, нравится язык и инструментарий. |
Ответ: Задачка на математику и логику.
Цитата:
задачку не читал, похожа на "школьную" херню. |
Ответ: Задачка на математику и логику.
Цитата:
К чему вообще комментарий? Типо, делать нечего, но чёт делать нада, мол фигня для тебя, дык, давай своё решение тогда. Если тебе не ясна суть анализа и ты не имеешь никакого понятия в анализе человеческого мышления в отдельных направлениях, то конечно, для тебя не будет иметь никакого значения такая задачка. Если ты читал внимательно начало, то понял что эта задачка для собеседования, и весьма популярна. И самое интересное, с ней мало кто достойно справляется, а половина вообще ахинею пишет. Это идёт речь о коммерчески опытных разработчиках!.. |
Ответ: Задачка на математику и логику.
2ffinder
Я думаю, МоКа, приведёт в конце разбор наших решений, продемонстрировав как различные алгоритмы характеризуют те или иные качества деятельности будущего сотрудника. Так что не стоит наперёд его называть http://lurkmore.ru/Синдром_вахтёра, МоКа этот тред не ради бахвальства затеял, а в целях просвятительских: систематизировать подход к подбору кадров. |
Ответ: Задачка на математику и логику.
Пробую принять замечания во внимание:
P.S. Я не считаю себя еще настолько крутым программистом, что бы с презрением относиться к "школьным" задачкам. Мне интересно сравнить мое решение с не моим. P.P.S. Почему форум затирает все отступы перед строкой? (Кроме текста внутри тега code) |
Ответ: Задачка на математику и логику.
почему я должен доверять моке в анализе личности?
подбор кадров происходит гораздо проще. есть два фактора: 1) может/не может писать код 2) будет/не будет писать код за оговоренные деньги фсё. |
Ответ: Задачка на математику и логику.
Цитата:
ffinder, Скудно.. Цитата:
Какие критерии доверия для тебя будет выражать другой работодатель? Цитата:
Цитата:
Цитата:
Если потребуются аргументы "фэйлов", предоставлю с радостью ;) |
Ответ: Задачка на математику и логику.
FireOwl, я тоже обожаю задачки такого рода.
По поводу версии 2: |
Ответ: Задачка на математику и логику.
Я бы написал как-то так:
|
Ответ: Задачка на математику и логику.
Цитата:
Но приведенный ниже "Ожидаемый результат" противоречит этому выводу. pax, твой код выведет и число 0, и 120, а их не нужно выводить. PS: А что, обязательно нужно заполнять массив последовательными числами? Почему нельзя вставить в (0,0) число 50, а в (0,1) число 45? Код:
//Java |
Ответ: Задачка на математику и логику.
Цитата:
Цитата:
|
Ответ: Задачка на математику и логику.
Цитата:
|
Ответ: Задачка на математику и логику.
Цитата:
|
Ответ: Задачка на математику и логику.
Вот как то так.... |
Ответ: Задачка на математику и логику.
SBJoker, у тебя первое число - 0, а надо от 5 до 100. Я сам такую же ошибку сначала допустил.
|
Ответ: Задачка на математику и логику.
|
Ответ: Задачка на математику и логику.
|
Ответ: Задачка на математику и логику.
2pax
а результат тот же. |
Ответ: Задачка на математику и логику.
Кстати по поводу рандома(того который rnd()), где гарантия что. В массив попадут нужные числа?
|
Ответ: Задачка на математику и логику.
Цитата:
|
Ответ: Задачка на математику и логику.
Умножив 5 на любое число от 1 до 20, полюбому число будет от 5 до 100. Кратное пяти.
Это Integer, а не Float |
Ответ: Задачка на математику и логику.
А теперь горькая правда. Начнем с психологии. Пришел я к моке на собеседование. А он мне бац - пишем на листочке только, да еще и какой-то псевдокод выдумываем на ходу вместо языка программирования. (Про себя думаю: самодур этот мока). Дальше больше - читаю задачку. На пальцах считаю 100/5 = 20 чисел, а массив 5*5=25. Вот тебе и вот, думаю. Мало того что садодуры, так еще и считать до 25 не умеют. Сижу такой, решаю, мучаюсь без компилятора. А потом - бац, телефон из кармана вытащил, в интернет быстро поключился. Зашел на tryerlang.org и там программу проверил и отладил. А сам сижу и думаю. А зачем решать задачу заполнением массива, да еще и двумерного, если можно сразу вычислить где числа совпадают, а массив и не хранить нигде? (А про себя думаю: этим ребятам не нужен думающий профессионал. Им нужен человек, которым они сами будут командовать в режиме "я начальник - ты дурак". И будут заставлять выполнять свои бредни глупые да бестолковые). Подумал-подумал, молча встал и ушел в другую контору. К нормальным чувакам. Не зазнайкам на пустом месте. Вот как-то так. |
Ответ: Задачка на математику и логику.
|
Ответ: Задачка на математику и логику.
ffinder погоди-погоди. Наверняка, есть какая-то тонкость. МоКа не в забегаловке какой работает, чтоб таких простых ошибок наляпать.
|
Ответ: Задачка на математику и логику.
какие основания у меня думать, что это всё умышленно? он только что люто зафейлил.
|
Ответ: Задачка на математику и логику.
Причём тут 5х5=125, а именно 125?
Нужно от 5 до 100. Он сейчас спит? Сколько у него там тек. время. |
Ответ: Задачка на математику и логику.
ты просто завидуешь: он принимающий, а ты - принимаемый.
МоКа ранее зарекомендовал себя только с лучшей стороны, так что сей фейл (если он имеет место быть) был бы очень неуместной кляксой на репутации == ( |
Ответ: Задачка на математику и логику.
импер, я уже проводил собеседования, руководил небольшой группой разработчиков (5 человек вместе со мной), сдавал проекты, занимался внедрением, работой с заказчиками, а мегамока тут... умничает? и я не имею права указать ему, (и тем самым помочь новичкам), что такая форма собеседований чистый, незамутненный бред? да?
|
Ответ: Задачка на математику и логику.
Подождать ещё его самого нужно!
Завтра зайдёт МоКа сюда, а тут уже 100 страничек об его обсуждении, а не задачки. PS: предлагаю ещё обсуждение по 3\п при принятии МоК(ой) в фирму. 10 тыщ. Цитата:
А не 5,10,15..95,100, 105 |
Ответ: Задачка на математику и логику.
Я весь в нетерпении узнать свой психологический портрет по куску кода!
|
Ответ: Задачка на математику и логику.
|
Ответ: Задачка на математику и логику.
Цитата:
Romanzes, с рандомом ивравду не совсем оправдано. По сути в условии было указано заполнить числами "от 5 до 100", а не "числами между 5 и 100". Плюс почти в каждом случае не будет наличие всех чисел. Поиск нужного элемента в массиве разумный, учитывая код ранее, не будет сценария когда число будет делиться на 20 но будет более 100. pax, один из самых хороших ришений, но можно избавиться от переменной current и step. SBJoker, лучшая логическая реализация задачи, лишь с одной поправкой на то что условие не соблюдено относительно двумерного массива. Но и подобный вариант хорош, лишь немного больше рутины в разных ситуациях где заместо простого подставления индексов, нужно будет немного математики. Плюс, если ещё лучше, можно сделать всё в один цикл. Т.к. в условии не было указано о том что это должны быть последовательные действия можно выводить и заполнять сразу. Твой пост, ffinder, я конечно прокомментирую детально. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Выделенное время на тест 10 минут. Тестируемый под наблюдением испытывает давление - а это очень распространённый фактор в коммерческой разработке. Если человек теряет свою внимательность и становиться растерянным перед давлением, это говорит о его от части некомпетентности и неуверенности в себе. Что от части нормально и распространено, но был бы + если этого не было. Цитата:
Подтверждение прошлых мыслей - неподчинение, и самовольность. Никакой речи о командной разработке и быть не может. Ни один ведущий программист, не будет нянчиться с непослушным программистом, ему нужны потенциальные и хорошие работники. Цитата:
Плюс снова, русский менталитет, при этом устаревшей версии. Очень глупый так сказать. Т.к. ты многое теряешь и ограничиваешь себя этим. Ну да ладна. Цитата:
К сожалению, искать условия чтобы они подходили вашим капризам - это детская забава. Я работаю в разумном и здравом коллективе, как маленькая семья, и мы часто работаем с другими командами с других компаний. И знаешь, у нас постоянно перемены. У меня идёт рост, потому что я умею себя организовать, язык и мой пылкий ум под контролем. Если я могу себя организовать, то имею возможность и организовать других. Тем самым есть рост. Вообще мне с тобой не хочется более общаться, смысла вижу мало, при этом, у тебя очень юношеский вахтёрский эффект выражен, неважно сколько тебе лет, это частенько не определяет ровным счётом нифига. Результат теста, грубый провал, ты не проявил ни интереса, ни уважения, плюс о знаниях твоих не удалось вообще ничего не узнать. Должность с хорошей зарплатой, с ростом и интересными инновационными проектами (тесная работа с инженерами что разрабатывают электронику и т.п.) естественно тебе уже не светит. Цитата:
Цитата:
Цитата:
Цитата:
То что у тебя было - молодцом, надеюсь заказчики довольны. Но то что ты тут пишешь, вызывает сомнения, т.к. ни одной разумной аргументации и встречных мыслей я не встретил вовсе, кроме как твоих личных недовольств и невежеств. Где тут говорить о опытности, когда человек даже не умеет "общаться"? YellowAfterlife, в принципе код нормальный, и работает, исключая только то что заполнение массива будет бегать не по y для каждого x, а наоборот (1,1; 2,1; 3,1 ...) Также основываясь условию, что нужно заполнить массив указанными числами, в первом цикле ты всё таки заполняешь массив исходя из количества элементов а не требуемых данных для хранения. Вторая часть корректна. Одно из самых важных данных о тестируемом, это будет его способности логически размышлять. Объём информации здесь не большой, но есть разнообразие включая итерации и двумерный массив. Логически держать в голове все условия, не так и просто. Важно чтобы тестируемый планировал, если он хорошо продумывает общую задачу и затем детализирует, будет обычно сделано в один цикл, или в два (заполнить массив и пробежаться по элементам выводя данные.). Если условия о числах менее 20 и более 100 были учтены, это говорит о заботе о стабильности кода, плюс это хороший плюс против "лени". Когда программист заранее продумывает сценарии отклонений, и учитывает их грамотно, код стабильнее, и багов на ровном месте будет намного меньше. Также к задаче можно подойти более логическим методом, либо более математическим, это будет зависеть от циклов и т.п. "Идеальный" код задачи, укладывается в 7(+2 при двух циклах) строк (объявление массива; начало цикла; присвоение значения; условие требуемых значений; вывод на экран при истинном результате условия; закрыть брэкет дважды) и 20 итераций цикла. Практически полное соответствие условий в поставленной задачи. ЗЫ, чтот народ у нас на булке некоторый быдлится.. |
Ответ: Задачка на математику и логику.
Цитата:
Цитата:
И да, мы уже давно поняли какой ты молодец и насколько ты успешен, как круто ты пробился с "низов" общества в "серьёзный" бизнес. А если уж рассматривать задачу, то для меня это представляется верхом идиотизма. Выводить значение сразу же при заполнение? зачем тогда массив? зачем вообще цикл, есл эти индексы никогда не изменятся с текущей постановкой задачи? |
Ответ: Задачка на математику и логику.
МоКа, что же ты ничего не сказал про мой код?
Я думаю, что ты просто в нем не разобрался. Для этого тебе и нужен псевдокод, как средство свести всех кандидатов (в том числе намного более квалифицированных чем ты) до твоего уровня. Он, между прочим выдает правильный ответ. На комментирование твоего остального шизофренического бреда у меня просто нет времени. |
Ответ: Задачка на математику и логику.
:pure_magic: ещё срач! больше СРАЧАА :pure_magic:
|
Ответ: Задачка на математику и логику.
Спасибо, теперь я знаю, что на собеседовании нужно показать работодателю, как послушно ты умеешь выполнять бессмысленные просьбы и расшифровывать двусмысленные задания. Держитесь, работодатели, я иду к вам!
Вот только есть проблема: если в задании написано одно, а принимающий ожидает увидеть другое, то что мне следует делать? Указать ему на противоречие между условием и ответом или извиниться, сказать что это я тупой, недоглядел, и подогнать решение под ответ? А то работодатель же всегда умнее, он подумает: "Я такой успешный, второе лицо в фирме, а тут какой-то холоп указывает мне, что я не прав. Мне нужен послушный кодер, который дословно переведет мои слова в машинный язык, а не тот, кто будет думать своими мозгами". PS: Можно привести примеры фирм, которые являются ну очень успешными, но при этом ненавидимы большинством программистов и пользователей (1С). |
Ответ: Задачка на математику и логику.
Цитата:
Цитата:
Работодателю не нужно следить за синтаксисом и "правописанием", этим занимается среда разработки. Более важен ход мыслей. Цитата:
Цитата:
В данном случае есть задача, нужно решить. ffinder Цитата:
Цитата:
Цитата:
Цитата:
При этом от тебя не было здесь ни одного дельного аргумента, лишь критика на то что тебе не нравиться подход, и что я мол вахтёр. Конечно учитывая это всё, твои слова вообще нифига для меня не стоят, т.к. они глупы до безобразия. Я до сих пор не могу понять, чего ты тут ещё делаешь, чего добиваешься? Я например, проанализировал чужой код, мне это что-то дало, а ты чё тут реально делаешь? Romanzes Цитата:
Весьма не разумно. Цитата:
Если ты заметил ошибку в задании, расскажи о ней работодателю, лох конечно пойдёт по твоему сценарию, хороший работодатель, подметить и поблагодарит, исправив недочёт, тебе будет + за инициативу. Цитата:
Цитата:
Если программист говорит что ему нужно месяц на исследования, то он его получит без проблем, т.к. опыт показывает что корректно спланированный продукт будет в разы успешнее, быстрее разрабатываться, расширяем, и без проблем в поддержке. Как мне известно 1С разрабатывался студентами в начале проекта. Естественно там и говорить нечего о нормальной организации проекта и архитектуринге. Вот вам и УГ в результате. Вопрос, почему в России нету нормальных продуктов, которые будут популярны и весьма широко используемы? Почему Россия не может выделиться практически ни одной IT компанией, так как может западная Европа? Там куча критериев, и в основном это от того что мы наблюдаем тут в виде ffinder'а и т.п. форумчан. Тебя бы устроила зп в 80к рублей в месяц? При этом с уважением будут относиться, никогда нос в твою личную жизнь не сунут, никакой эксплуатации и вахтёринга с коллег или с руководства? Я сужу из опыта т.к. в последнее время помогаю другим студиям в некоторых проектах как по обмену, т.к. нашей компании это приносит весьма хорошо, при этом мне опыт. Я за 9 месяцев уже разработал один полноценный продукт в одиночку, и показал пример хорошего планирования и само организации, теперь проект поддерживают два нанятых программиста, и я постоянно с ними общаюсь, с их стороны почти никаких возражений, т.к. код весьма организован и читабелен. В России это редко наблюдается, во первых там тупизм у большей части людей, всякие личные дебилизмы, плюс платят частенько вообще голимо, о понятии "мотивация" там знает 1 работодатель из ста. До сих пор используется не направленный шантаж ("работай выходные, либо будет худо"), и метод кнута в виде санкций, что идёт ещё с самого древнего Египта, и давно в Европе показал себя как не эффективный метод "мотивирования". Также я написал в самом начале - на данный момент я не провожу собеседований. ЗЫ, мне смешно глядеть на народ, который по каким-то непонятным причинам тут со слюнями постит разную чушь, слепо "веруя" что он самый правый, не задумываясь об обратном (я всегда стараюсь пересмотреть свои мысли, если мне кто-то укажет на ошибку, и трезво аргументирует, я буду лишь искренне благодарен). Слабо написать почему вы тут? |
Ответ: Задачка на математику и логику.
Я напишу. Это очень просто.
Мне обидно. У меня баттхерт. Мы тут умные и грамотные сидим в жопе, страна катится в экономическую пропасть. А некоторые личности, едва окончившие среднюю школу (ты сам писал что учеба тебя не интересовала) и по воле судьбы оказавшейся в одном из самых богатых городов мира (Лондоне) - пишут нам какие они там "умные" и как они умеют измываться над подчиненными. Мока - ты неуч! Все что ты знаешь это бейсик и немного С#. Т.е. набор среднего быдлокодера. Ты понятия не имеешь, что есть куча языков (целая ветвь функциональных языков SML, Ocaml, F#), в которых нету двумерных массивов, есть языки в которых нельзя писать в переменные более одного раза. Ты привык мыслить на своем ламерском уровне и учишь других жить. Тебе должно быть стыдно. Читай, учись. А не умничай. Еще раз повторю - ты наглый хам и неуч! |
Ответ: Задачка на математику и логику.
Moka, теперь я в общем с тобой согласен, просто я при написании поста представлял именно русских работодателей, так как у меня имеется опыт общения только с ними. Хорошо конечно, раз у вас в Британии дела в этой сфере обстоят по-другому, но большинство здесь на форуме живут в России/Украине, так что твои советы оказываются бесполезными. Если только самому не открывать свою фирму.
|
Ответ: Задачка на математику и логику.
Цитата:
А ты показал себя неучем. Цитата:
Цитата:
|
Ответ: Задачка на математику и логику.
Цитата:
"баттхерт", это bad heart? У меня рак, и что? Цитата:
Цитата:
Я рос без отца, с двумя сёстрами, нам было почти нечего кушать. В Латвии большой пи**ец с экономикой, и когда под влиянием запада и других глобализаций, страна стала просто катиться в яму по всем параметрам, жить было реально сложно. Я клал газоны, плитку, бегал за гроши чинил народу компы, когда исполнилось 18, мне нужна была нормальная работа, и за свою активность и настырность, я нашёл фирмочку по проектированию, я работал месяц на бесплатной основе, по 65 часов в неделю, чтобы показать свой потенциал и иметь мотивацию для самообучения, ведь с автокадом работал очень мало до этого. Там я отработал полтора года. И когда в стране стало вообще депрессивная жопа, я решился уехать. Купил белеты на две недели вперёд, и продал по дешёвке две гитары, комп который долго по частям собирал и кучу всего. Чтобы собрать ничтожные 400 фунтов (18к руб), и с этим я приехал в Лондон, зная двух человек. Я отработал как папа карло на кухне, моя полы и посуду, затем кофи бар, затем бар, постоянно двигался вперёд, это не везение, это стремление и те методы которым я основываюсь меня не подводили. Размышление о том как человек и особенно я сам реагирую на вещи, почему, источники эмоций, эмоции как таковой, мотивация и т.п. Всё это я изучал лишь потому что у меня всегда были плохие условия обитания, и это меня мотивировало на перемены, двигаться вперёд, т.к. я не хотел мириться с тем что имел. Затем через почти два года работы на низкого класса работах, я нашёл молодую компанию, и очень хорошо себя предоставил. На протяжении трёх недель я ходил после работы как минимум на два часа к ним в офис, чтобы хоть чуток по программировать, а выходные проводил в офисе по 14 часов в сутки. Всё что я делал, это спал и пахал в эти 3 недели. Затем я пришёл к босу, и прямо описал всю ситуацию что я работаю в баре и на кухне по 55 часов (на тот момент) в неделю, и на эту работу остаётся мало времени. Он обсудил всё что я делал и как я делал за эти три недели. При этом всё что я делал это учил MySQL и PHP, имея минимальный опыт с ними до этого. Потенциал и стремление которое я показал, оправдало себя. Я был принят на работу, на испытательный срок с минимальным заработком. Далее на протяжении трёх месяцев я работал над веб приложениями, пахая больше нужного, и всё ещё получал очень малые деньги, чего не хватало на оплату маленькой комнатки в часу от работы, и еды (транспорт - велосипед). После трёх месяцев мы получили финансирование, и новый проект, я этот проект взял на себя. И под сильным давлением его закончил. По окончанию проекта, моя зп была щедро повышена, т.к. я чуть более чем за пол года, показал свой потенциал и прогрессивное само обучение, впахивая по 60 часов. Теперь мне реально начхать на твой убогий гон, потому что он не имеет никакой информационной аргументации под собой. Я мыслю и стараюсь мыслить трезво. Общаясь с людьми интеллектуально разумными, слышу часто критику и работаю над ней, но общая методика мышления сильно устоялась и работает безотказно. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
"Умничай", это слышишь от глупца, которому чужие слова кажутся слишком умные. Чтож, мне грустно если тебе не понять многое что я говорю. Цитата:
Про хамство... Ха! Ты меня радуешь.. ;) |
Ответ: Задачка на математику и логику.
|
Ответ: Задачка на математику и логику.
Цитата:
Бумажкой из школы (и универа, особенно рашкинского) можно разве что подтереться, если ничего другого нет. А ещё, по секрету, успешными (в Рашке) часто становятся не самые умелые, а самые наглые. Вот тут уже баттхёрт у меня. Но это к данному случаю не относится. И БАГЕТ свой уже умерь, не пугай людей. Житель другого Богатого Города. |
Ответ: Задачка на математику и логику.
Задача простая. И типичных вариантов решения с виду не много. Эту задачу предлагают на тестах?
Самое интересное что я тут нашел, это координаты нужных элементов массива. Ожидаемый результат на экране: m[0,3] = 20 m[1,2] = 40 m[2,1] = 60 m[3,0] = 80 m[3,4] = 100 Поправка: у чисел 80 и 100 в массиве 5 на 5 координаты будут [2,4] и [3,3] соответственно. Их сумма равна или 3 или 6, с исключением: m[3,0] = 85 и m[4,2] = x - это элемент массива, где должно стоять число уже больше ста. Эти исключения легко игнорируются в процессе вывода нужных элементов. Указываем в циклах перебор по x - до i=3 строки, по y - от j=1 столбца. И все. Условие вывода естественно - i+j = 3 & i+j = 6 |
| Часовой пояс GMT +4, время: 18:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot