Задачи на аналитическое мышление на собеседовании

10 задач с собеседований в крупные компании

Задачи на аналитическое мышление на собеседовании

Известные корпорации — Google, Intel или Apple — славятся тем, что на собеседовании задают соискателям каверзные задачки. Сайт AIN.UA собрал 10 интересных примеров таких задач. Некоторые из них предложили сами компании, а некоторые выложили пользователи, уже проходившие собеседования. Для их решения требуются знание математики на школьном уровне или просто смекалка.

AdMe.ru предлагает проверить, как бы вы справились с таким собеседованием.

Что спрашивают в Apple

© itechify  

Задача на логику. Шелдон Купер (тот самый гениальный физик из популярного сериала) дошел в игровом квесте в погоне за сокровищами до последнего рубежа. Перед ним — две двери, одна ведет к сокровищу, вторая — к смертельно опасному лабиринту.

У каждой двери стоит стражник, каждый из них знает, какая дверь ведет к сокровищу. Один из стражников никогда не врет, другой — врет всегда. Шелдон не знает, кто из них врун, а кто нет.

Прежде чем выбрать дверь, задать можно только один вопрос и только одному стражнику.

Вопрос: Что спросить Шелдону у стражника, чтобы попасть к сокровищу?

Можно спросить любого, при этом задать вопрос так: «Какая дверь, по мнению другого стражника, правильная?». Если он спросит у правдивого, то получит данные о том, какая дверь ведет к лабиринту, ведь врущий стражник всегда врет. Если же он спросит у врущего стражника, опять же, узнает, какая дверь ведет к лабиринту, ведь тот соврет о двери, на которую укажет правдивый стражник.

Землю захватили инопланетяне. Они планируют уничтожить всю планету, но решили дать человечеству шанс. Они выбрали десяток самых умных людей и поместили их в абсолютно темную комнату, посадив в ряд, один за другим. На каждого из людей надели по шляпе, шляпы всего двух цветов — розовые и зеленые. После того как все шляпы оказываются на головах, свет включается.

Инопланетянин начинает с последнего человека в ряду и спрашивает о том, какого цвета шляпа у него на голове. Других слов, кроме цвета шляпы, произносить нельзя. Отмалчиваться — тоже. Если он отвечает верно, остается в живых, ошибается — его убивают.

Нельзя посмотреть, какого цвета ваша шляпа, но можно договориться о некоем принципе, по которому отвечать всем. Расположение шляп — случайное, комбинации могут быть любыми, вам видны все шляпы, которые расположены перед вами.

Вопрос: Что нужно отвечать, чтобы выжило как можно больше людей?

Первый отвечающий считает количество зеленых шляп перед собой: если это нечетное число, он называет «зеленый», если четное — «розовый».

Следующий, видя количество и цвет шляп перед собой, может таким образом вычислить, какого цвета шляпа у него на голове (к примеру, если зеленых все еще нечетное количество, то очевидно, что на нем — розовая), и так далее.

Таким образом гарантированно выживают 9 из 10, а у первого отвечавшего шанс 1 к 1.

Что спрашивают в Adobe

© adobe  

У вас 50 мотоциклов с заполненным топливом баком, которого хватает на 100 км езды.

Вопрос: Используя эти 50 мотоциклов, как далеко вы сможете заехать (учитывая, что изначально они находятся в условно одной точке пространства)?

Самый простой ответ: завести их все одновременно и проехать 100 км. Но есть и другое решение. Сначала переместите все мотоциклы на 50 км. Затем перелейте топливо из половины мотоциклов в другую половину.

У вас таким образом — 25 мотоциклов с полным баком. Проедьте еще 50 км и повторите процедуру.

Так можно забраться на 350 км (не учитывая того топлива, которое останется от «лишнего» мотоцикла при разделе 25 надвое).

Что спрашивают в Microsoft

© naked-science  

У вас бесконечный запас воды и два ведра — на 5 литров и 3 литра.

Вопрос: Как вы отмерите 4 литра?

Наполните водой пятилитровое ведро и вылейте часть воды в трехлитровое. У вас сейчас 3 литра в маленьком ведре и 2 — в большом. Опустошите маленькое ведро и перелейте туда оставшиеся 2 литра из большого. Снова наполните большое ведро и перелейте из него воду в малое. Там уже есть 2 литра воды, так что долить придется литр, а в большом останется 4 литра.

У вас два отрезка веревки. Каждый таков, что если поджечь его с одного конца, он будет гореть ровно 60 минут.

Вопрос: Имея только коробку спичек, как отмерить с помощью двух отрезков такой веревки 45 минут (рвать веревки нельзя)?

Один из отрезков поджигается с двух концов, одновременно с этим поджигается второй отрезок, но с одного конца. Когда первый отрезок догорит полностью, пройдет 30 минут, от первого также останется 30-минутный отрезок. Поджигая его с двух концов, получим 15 минут.

Что спрашивают в Google

© terra  

У вас имеется 8 шариков одинакового вида и размера.

Вопрос: Как найти более тяжелый шарик, используя весы и всего два взвешивания?

Отберите 6 шариков, разделите их на группы по 3 шарика и положите на весы. Группа с более тяжелым шариком перетянет чашу. Выберите любые 2 шарика из этой тройки и взвесьте. Если тяжелый шарик среди них, вы это узнаете; если они весят одинаково — тяжелый тот, что остался. Если же более тяжелого шарика в группах по 3 шарика не оказалось, он — среди 2 оставшихся.

Что спрашивают в Qualcomm

© miui  

Эту задачку описал пользователь, которого собеседовали на позицию senior systems engineer. Он отметил в описании задачи, что у него был свой ответ, по поводу которого он долго спорил с человеком, проводившим собеседование.

Предположим, у нас происходит 10 пакетных передач данных по беспроводной сети. Канал не очень качественный, так что есть вероятность 1/10, что пакет данных не будет передан. Трансмиттер всегда знает, удачно или неудачно был передан пакет данных. Когда передача неудачная, трансмиттер будет передавать пакет до тех пор, пока не преуспеет.

Вопрос: Какую пропускную способность канала получаем?

По версии пользователя, ответ должен был быть: 9 пакетов в секунду. Но человек, проводивший интервью, с ним не согласился, правда, ответа не назвал, но повторял, что «из-за ретрансмиссии пропускная способность должна быть уменьшена больше, чем на 1/10».

Что спрашивают в «Яндексе»

© naked-science  

Эту задачу предлагали решить для вступления в Школу анализа данных в феврале 2014 года.

Игра состоит из одинаковых и независимых конов, в каждом из которых выигрыш происходит с вероятностью p. Когда игрок выигрывает, он получает 1 доллар, а когда проигрывает — платит 1 доллар. Как только его капитал достигает величины N долларов, он объявляется победителем и удаляется из казино.

Вопрос: Найдите вероятность того, что игрок рано или поздно проиграет все деньги, в зависимости от его стартового капитала K.

Эту задачу предлагали решить разработчикам на собеседовании, и она больше связана непосредственно с программированием, чем предыдущие примеры.

Имеется морфологический словарь объемом примерно 100000 входов, в котором глаголы совершенного и несовершенного вида помещены в отдельные статьи (то есть «делать» и «сделать» считаются разными словарными входами). Вам требуется найти в словаре такие видовые пары и «склеить» статьи в одну.

Вопрос: Опишите общий сценарий решения такой задачи и примерный алгоритм поиска видовых пар.

Ответов на задачи «Яндекса» у нас, к сожалению, нет.

И бонус

Эту задачу приписывают Альберту Эйнштейну — якобы с ее помощью он подбирал себе ассистентов. Другая почти легендарная история приписывает авторство Льюису Кэрроллу. Отметим, что она очень просто решается на бумаге, но, если хотите хардкора — попробуйте решить в уме.

На улице стоят пять домов.Англичанин живет в красном доме.У испанца есть собака.В зеленом доме пьют кофе.Украинец пьет чай.Зеленый дом стоит сразу справа от белого дома.Тот, кто курит Old Gold, разводит улиток.В желтом доме курят Kool.В центральном доме пьют молоко.Норвежец живет в первом доме.Сосед того, кто курит Chesterfield, держит лису.

В доме по соседству с тем, в котором держат лошадь, курят Kool.Тот, кто курит Lucky Strike, пьет апельсиновый сок.Японец курит Parliament.Норвежец живет рядом с синим домом.

Каждый из домов покрашен в отдельный цвет, в каждом доме живет представитель отдельной национальности, у каждого — свой питомец, своя любимая марка сигарет и напиток.

Вопрос: Кто пьет воду? Кто держит зебру?

Японец держит зебру, норвежец пьет воду.

Источник: https://www.adme.ru/zhizn-nauka/10-zadach-s-sobesedovanij-v-krupnye-kompanii-866660/

Задачи на собеседованиях от Acronis и решения задач от Custis – «Хакер»

Задачи на аналитическое мышление на собеседовании

«За что бьют сисопа? За отсутствие бэкапа!» Корни этой мудрости потерялись в веках, а само слово «сисоп» уже подзабылось, но за отсутствие бэкапа по-прежнему кого-то бьют.

Слабые тела админов и простых пользователей защищает не так уж много производителей ПО, и из них, пожалуй, лидирующим можно назвать Acronis — трудно найти в нашей стране пользователя, данные которого ни разу не были бы спасены программами Acronis от грандиозного факапа. Про админов и говорить нечего — решения этой компании всегда занимали достойное место на загрузочных дисках для оказания первой помощи. А как быть программистам, которые хотели бы в нее трудоустроиться? Когда-то я сам шарил по сайтам с вакансиями и, как сейчас помню, был вдохновлен зарплатой, которую в Acronis обещали программистам на приплюснутом си.

Сегодня мы поговорим с Евгением Панищевым, руководителем QA Cloud направления международной компании Acronis. Его отдел занимается тестированием всех облачных решений Acronis: от Acronis Backup Cloud до Acronis Disaster Recovery. Задача лично Евгения — следить за тем, чтобы специалисты отдела выполняли свою работу еще лучше и эффективнее.

Евгений регулярно проводит собеседования при приеме людей в отдел сопровождения качества и считает, что хороший тестировщик должен обладать логическим мышлением, быть очень внимательным, уметь нестандартно мыслить и четко обосновывать свою точку зрения. Поскольку нет такого человека, который отрицал бы в себе наличие всех этих качеств :), для их проверки он дает на собеседовании ряд задач — как имеющих правильный ответ, так и «открытых», без единого решения.

Свой выбор задач Евгений объясняет так: «Первый тип задач позволяет проверить логические и аналитические способности кандидата, второй — понять, как именно он мыслит.

На собеседовании важно и то и другое; иногда правильное живое мышление важнее верного ответа. Я знаю, что многие пренебрежительно относятся к задачам, предлагаемым на собеседовании, считая их пустой тратой времени, но это ошибка.

Такие тесты позволяют за довольно короткое время понять, что за человек перед вами. Чем нестандартнее задачи, тем лучше понимание».

Любимое задание Евгения — тестирование калькулятора: кандидату выдают обыкновенный настольный калькулятор и предлагают проверить его работу. Эта задача не имеет точного решения, зато позволяет выявить уровень человека как тестировщика.

По тому, какие тест-кейсы он озвучивает, какие уточняющие вопросы задает, как выбирает ключевые параметры тестирования при наличии ограниченного числа тест-кейсов, можно понять, насколько человек разбирается в теме, готов ли учиться и воспринимать подсказки, умеет ли идти на компромисс и отстаивать свою точку зрения.

Если это задание кажется тебе слишком простым, попробуй ответить на вопрос: как именно должен вести себя калькулятор, если произвести на нем действие, результат которого выйдет за пределы разрешенного для экрана количества цифр? Почему ты считаешь, что он должен вести себя именно так?

«Для любого айтишника важно знание алгоритмов, оценка их сложности и умение с ними работать, — говорит Евгений. — Без приличного математического аппарата невозможно стать высококлассным специалистом: чем выше вы подниметесь в иерархии программистов, тем с более высоким уровнем абстракции вам придется иметь дело. Это практически не зависит от того направления, которое вы выберете: математика нужна везде».

Чтобы проверить, как кандидат ориентируется в высоких алгебраических сферах, Евгений использует, например, такую задачу: «Дан массив S из n действительных чисел, а также число x. Как за время O(nlogn) определить, можно ли представить х в виде суммы двух элементов из S?»

В целом, по мнению Евгения, теория алгоритмов — это область, которой часто пренебрегают в ходе обучения программированию. «Обычно ограничиваются некоторыми общими словами и примерами.

Знание сортировки „пузырьком“ или быстрой сортировки само по себе недостаточно для понимания темы. Кроме теории алгоритмов, необходима логика, а также умение ее применять — желательно всегда и везде».

Чтобы понять, умеет ли кандидат делать правильные умозаключения независимо от внешней формулировки, в Acronis используют следующую забавную задачу:

«Если лягушонок зеленый, то он веселый. Если лягушонок не веселый, то он сидит на берегу. Все лягушата либо зеленые, либо пестренькие. Если лягушонок пестренький, то он плавает в воде.

Из этого следует (нужно выбрать правильный ответ или ответы):

  • (A) все лягушата — пестренькие;
  • (B) все лягушата плавают в воде;
  • (C) все лягушата — веселые;
  • (D) все лягушата — не веселые;
  • (E) все веселые лягушата — зеленые».

«Задача выглядит детской и несерьезной, что зачастую сбивает многих кандидатов с толку: они не могут абстрагироваться от формулировки и работать с утверждениями так, будто это обычные логические последовательности.

По сути, это действительно довольно простая задачка, которая дается на математических олимпиадах школьникам пятых-шестых классов.

Но об этом я кандидатам не говорю; особенно тем, кто не смог ее решить» (задачка очень популярная, и, кстати, она была в одном из выпусков нашей рубрики. — Прим. ред.).

Развитое логическое мышление иногда ценится даже выше, чем умение писать код. «На мой взгляд, логика нужна любому человеку, а IT-специалисту — тем более.

Поэтому мы, к сожалению, периодически вынуждены отказывать кандидатам, которые пишут неплохой код, имеют немалый опыт, но при этом очень слабо владеют математической логикой.

Программист, который ею не владеет, — это потенциальная угроза будущему продукту».

Еще одна классическая задача на логику от Acronis:

Предположим, что фраза «Завтра будет лучше, чем вчера» верна каждый день. Какое из утверждений может тогда быть неверным?

  • (A) Послезавтра будет лучше, чем сегодня.
  • (B) Сегодня будет лучше, чем позавчера.
  • (C) Послезавтра будет лучше, чем позавчера.
  • (D) Завтра будет лучше, чем позавчера.
  • (E) В 2006 году 1 апреля будет лучше, чем позавчера.

Ну и конечно, для IT-специалиста важно умение писать код и разбираться в том, что написали другие. По мнению Евгения, то и другое одинаково необходимо. «Если человек умеет писать код, но совершенно не способен понять код коллеги, то он бесполезен, — точно так же, как тот, кто прекрасно читает чужой код, но не может написать ни строчки своего».

Чтобы понять, насколько свободно человек владеет кодом, в Acronis используют задачи наподобие этих:

Объясните, что делает этот код:

((n & (n – 1) ) == 0)

Найдите ошибку в следующем коде:

unsigned int i; for (i = 100; i >= 0; –i) printf(“%d”, i);

Дан текстовый файл размером 32 Гбайт. На тестовой машине установлены Windows и питон. Нужно найти последнее вхождение слова ERROR и вывести десять строчек до и десять после. Как изменится решение, если исходный файл разбит на куски размером 2 Гбайт?

Наконец, есть еще один неочевидный параметр, по которому обычно оценивают кандидата. «Его называют по-разному, но мне больше нравится термин „толковость“. Это некая смесь „соображалки“, умения находить нестандартный подход и вообще работать с новыми и необычными задачами.

Задачи для проверки этого качества вызывают самые большие споры. Практически все уже знают вопросы о том, почему крышка у канализационного люка круглая и сколько шариков может поместиться в автобусе. Такие вопросы можно считать дурацкими, но их нужно задавать, чтобы понять, как человек способен справиться с нестандартной ситуацией.

Решения может не быть: это в данном случае не главное».

В Москве есть служба промышленных альпинистов, которые приводят в порядок внешнюю часть зданий и моют окна с наружной стороны. Оцените, сколько таких альпинистов работает в Москве.

Никто не ждет, что кандидат с ходу назовет точное число или хотя бы сможет приблизительно его подсчитать. Главное — посмотреть, как человек мыслит, как подходит к задаче, как пытается найти ответ.

Но разумеется, есть и задачи с конкретным решением. Две из них Евгений предлагает вниманию читателей «Хакера».

Те, кто первыми пришлют правильные ответы (обязательно с обоснованием), получат в качестве приза от компании Acronis ключи от кварти… нет, стоп, не то письмо.

Победитель получит ключ для Acronis True Image 2015 — уникального ПО для резервного копирования в безлимитное облако на один год.

Куда слать правильные ответы?

Правильные ответы принимает Диана Круглова, Diana.Kruglova@acronis.com.Спеши выиграть ключ Acronis True Image 2015 – уникальный софт для резервного копирования своего PC или Mac в безлимитное облако на один год!

Представьте, что у вас есть обыкновенные часы. Они идут точно, без сбоев. В этих часах меняют местами минутную и часовую стрелки. Сколько раз в сутки такие часы будут показывать правильное время?

Нужно написать на листе бумаги число 10 000 и обвести его в круг, не отрывая ручку от этого листа бумаги; при этом цифры не должны соединяться друг с другом.

Разработчик баз данных в свой первый рабочий день в компании Custis обнаружил, что в его проекте используется всего одна табличка с данными по отгруженным товарам (Т).

В ней собираются данные по дате отгрузки (d), идентификационному номеру клиента (c) и количеству отгруженного товара (s).

Разработчик проверил и убедился, что никаких ключей в таблице нет и по одному клиенту может быть сколько угодно фактов отгрузки в один день.

Почувствовав облегчение от того, что не придется возиться со страшными запросами, разработчик пошел на кухню выпить кофе и перекусить фруктами.

После возвращения он с легким сердцем схватил первый же инцидент со Scrum-доски и прочитал следующее: «Нужен отчет по ежедневным отгрузкам товара по выбранному клиенту».

Посоветовавшись с товарищами, он выяснил, что отчеты принято оформлять в виде view (представления), то есть для решения проблемы нужно сделать такой view, чтобы запрос

select * from V where c = ?

возвращал отчет по указанному клиенту, причем в результате будут отражены все дни текущего года. Аналитик проекта сказал, что пользователи не любят пустых граф в отчетах, так что все отсутствующие отгрузки придется формировать как нулевые.

Как вы думаете, какой view в результате получился у нашего разработчика?

create view V as select p.d, T.c, nvl(sum(T.s),0) s from ( select trunc(sysdate, 'Y')+level-1 d from dual connect by trunc(sysdate, 'Y')+level-1 new { Product = p, Rests = atlasClient.GetRests(p.Id) }); var fewProducts = allProducts.Where(i => i.Rests > 0 && i.Rests < 10).Select(i => i.Product); var someProducts = allProducts.Where(i => i.Rests >= 10 && i.Rests < 100).Select(i => i.Product); var manyProducts = allProducts.Where(i => i.Rests >= 100).Select(i => i.Product); PrintFewProducts(fewProducts); PrintSomeProducts(someProducts); PrintManyProducts(manyProducts);

метод atlasClient.GetRests занимает около 98% общего времени построения отчета.

Предложите вариант оптимизации построения отчета. Почему ваш вариант работает быстрее? Сколько времени занимает построение отчета после вашей оптимизации?

  • Используя ToArray() или аналоги, вычислить последовательность allProducts до ее использования при получении fewProducts, someProducts, manyProducts.
  • AllProducts является отложенным Linq-запросом, и его использование в трех выражениях приводит к многократному вычислению элементов последовательности. Вычислив последовательность один раз, мы сэкономим два «дорогих» вызова atlasClient.GetRests на каждый элемент последовательности, но нам потребуется дополнительный объем памяти для хранения результата. Из-за этого при больших объемах данных такое решение «в лоб» не всегда может быть применимо.
  • Такой вариант построения отчета будет занимать около двадцати минут.

Разработчик C# решил попробовать себя на поприще Java и перешел в Java-проект. Одно из первых заданий, которое он получил, — сделать таблицу с информацией о проданных товарах.

В постановке задачи было написано, что нужны следующие столбцы: имя клиента, код клиента, название товара и стоимость товара.

Посмотрев на реализацию такого рода таблиц в проекте, он понял, что при настройке таблицы придется написать что-то вроде

table.add( “customer.name” ); table.add( “customer.code” ); table.add( “subject.name” ); table.add( “summ” );

Прямо скажем, по сравнению с тем, как он делал это на родном dotNet, это выглядело совсем ненадежно — никаких проверок уровня компиляции, очень легко допустить ошибку. Хочется написать

table.add( customer.name );

Или хотя бы

table.add( {} -> customer.name );

А тут такое… Код получается небезопасный, IDE никак не подсказывает, что писать, и вообще… Решив не сдаваться и привнести свет истины в захолустное царство Java, он объяснил проблемы такой настройки таблиц другим Java-разработчикам.

Ему отвечали, что проект ведется на Java 7, лямбд нет, а с анонимными классами для каждого поля настройка будет выглядеть жутко, поэтому «пишем, как можем».

Однако, найдя единомышленников в стане Java, он смог реализовать движок, который позволял настраивать столбцы вот так:

Payment root = root( Payment.class ); table.add($( root.getCustomer().getName() )); …

Причем интерфейс настройки таблиц менять не пришлось, то есть на вход table.add приходит все та же строка customer.name. Не пришлось менять и модельные сущности («покупатель», «товар», «покупка» и другие), и даже не понадобилось никаких автогенерированных классов. Этот инструмент начали использовать везде, где нужно было сослаться на цепочку свойств.

Как бы вы реализовали такой фреймворк? Важен только принцип, код писать не нужно.

  • root — статический метод, на лету создающий особый прокси-объект вокруг модельной сущности. Все get-методы в этом объекте записывают свои вызовы в глобальную переменную (например, ThreadLocal);
  • $ — статический метод, который из данной глобальной переменной получает полный путь к полю в виде строки.

IT-компании, шлите нам свои задачки!

Миссия этой мини-рубрики — образовательная, поэтому мы бесплатно публикуем качественные задачки, которые различные компании предлагают соискателям. Вы шлете задачки на lozovsky@glc.ru — мы их публикуем.

Никаких актов, договоров, экспертиз и отчетностей.

Читателям — задачки, решателям — подарки, вам — респект от нашей многосоттысячной аудитории, пиарщикам — строчки отчетности по публикациям в топовом компьютерном журнале.

Источник: https://xakep.ru/2015/07/07/coding-challenges-198/

Задачи на логику на собеседовании (с ответами)

Задачи на аналитическое мышление на собеседовании

Задачи на логику – распространенный инструмент HR-менеджеров для оценки соискателей.

Не на каждом собеседовании вам предложат заумные задачки и головоломки, но такая вероятность есть. Причем, если вы ранее не сталкивались с тем, что вам задают задачи на собеседовании, можно растеряться.

Ну, например, такая задача-вопрос:

Есть ли на Земле место, где оба конца стрелки компаса указывают на север?

Оказывается, такое место есть. Это Южный полюс. Поскольку вокруг него – только север, куда ни повернись, то оба конца стрелки компаса в этой точке смотрят на север.

Для решения нужно немножко знаний из школьного курса географии и догадливость. И хладнокровие: если сразу позволить себя сбить с толку вопросом, то способность думать может впасть в кому.

И тогда случится наименее желательное: вы начнете нервничать, будете думать долго, не желая признавать поражение, и, в конце концов, скажете, что не знаете ответа.

На самом деле, найти ответ не обязательно.

Учтите, что задачи на логику на собеседование задаются не только для того, чтобы соискатель дал верный ответ. (Хотя, если вы это сделаете, это произведет впечатление).

Важно:

– не сдаться сходу, не признать, что вы не знаете ответа и не умеете решать задачи на логику,

– показать ход мысли. Порассуждайте вслух – как вы ищете решение, на какие моменты опираетесь? Эйчару важно понять, что вы умеете рассуждать логически.

С помощью нашего теста вы можете проверить себя: насколько задачи на смекалку на собеседовании сложны для вас, или вы щелкаете их, как орешки.

Правильные ответы дадут возможность оценить, в правильном ли направлении вы думали, если верного ответа так и не нашли. Наверняка вы сделаете вывод, что во многих случаях важна не столько логика, сколько внимательность.

Ответы вы найдете во второй части статьи, под задачами (чтобы не было соблазна подглядывать ;)).

Задачи:

1) 5 землекопов за 5 часов выкапывают 5 м канавы. Сколько нужно землекопов, чтобы вырыть 100 м канавы за 100 часов, если продуктивность работы такая же?

2) Воздушный шар движется в потоке воздуха, в южном направлении. В каком направлении будут развеваться флаги на его гондоле?

3) Почему у яйца один конец острый, а другой  – тупой?

4) В 12 часов ночи идет дождь. Можно ли ожидать, что через 72 часа выглянет солнце?

5) Как следует бросить мяч, чтобы он непременно к вам вернулся?

6) На пол положили карандаш и попросили нескольких людей по очереди через него перепрыгнуть. С задачей не справился никто. Почему?

7) Ире и Маше подарили по коробке, в каждой из которых 12 конфет. Ира съела несколько конфет. Маша съела столько конфет, сколько осталось в коробке у Иры. Сколько конфет осталось у Иры и Маши на двоих?

8) В деревне жил странный человек. Любимой забавой жителей и гостей деревни была следующая. Чудаку предлагали на выбор монету в 10 центов и бумажную купюру в 10 долларов. Человек всегда выбирал монету. Почему?

9) На закуску делимся с вами задачей, которую якобы использовал Эйнштейн, когда подбирал себе ассистентов. Другая легенда гласит, что эту загадку любил загадывать Льюис Кэролл.

На улице стоят пять домов.

Англичанин живет в красном доме.

У испанца есть собака.

В зеленом доме пьют кофе.

Украинец пьет чай.

Зеленый дом стоит сразу справа от белого дома.

Тот, кто курит Old Gold, разводит улиток.

В желтом доме курят Kool.

В центральном доме пьют молоко.

Норвежец живет в первом доме.

Сосед того, кто курит Chesterfield, держит лису.

В доме по соседству с тем, в котором держат лошадь, курят Kool.

Тот, кто курит Lucky Strike, пьет апельсиновый сок.

Японец курит Parliament.

Норвежец живет рядом с синим домом.

Каждый из домов покрашен в отдельный цвет, в каждом доме живет представитель отдельной национальности, у каждого — свой питомец, своя любимая марка сигарет и напиток.

Вопрос: Кто пьет воду? Кто держит зебру?

Ответы:

1) Те же 5 землекопов. За 1 час 5 землекопов выкапывают 1 м канавы. Значит, за 100 часов они выкопают 100 м.

2) Флаги не будут развиваться; они будут в таком же состоянии, как если бы шар находился на земле при полном безветрии. Дело в том, что относительно воздушной массы, в которой находится шар, он неподвижен, поэтому флаги будут находиться в состоянии покоя.

3) Такая форма позволяет яйцу не укатиться. Если бы яйцо было правильной, симметричной формы – например, круглым – оно могло бы катиться по прямой. Несимметричная форма заставляет яйцо двигаться по кругу. То есть если оно находится, например, на краю пропасти, то шансов укатиться и упасть у яйца меньше. Так природа заботится о сохранении яйца и его содержимого.

4) Нет, солнце не выглянет, потому что через 72 часа (трое суток) будет 12 часов ночи.

5) Нужно бросить его вверх.

6) Потому что карандаш положили вплотную к стене.

7) 12 конфет.

8) Он выбирал монету, потому что знал, что, как только он выберет купюру, люди потеряют к забаве интерес, и он перестанет получать монеты.

9) Японец держит зебру, норвежец пьет воду.

Источник: http://blog.trud.com/blog/2016/07/05/zadachi-na-logiku-na-sobesedovanii/

Задачи на логику на собеседовании – на подумать

Задачи на аналитическое мышление на собеседовании

Готовясь к прохождению собеседования, PHP программисты часто задаются вопросами: что меня будут спрашивать, какие вопросы и задания могут быть? Вопросы и задачи могут быть абсолютно разными.

Здесь нельзя предугадать, что конкретно у вас будут спрашивать, и какое тестовое задание попросят пройти.

В данной статье собраны наиболее часто встречающиеся вопросы и задачи, которые могут попасться на собеседовании и которые PHP программист должен знать.

Сколько типов данных  есть в PHP? Какие это типы данных?

В php есть 8 базовых типов данных

4 скалярных типа:

  • boolean — логический тип true/false
  • integer — целочисленный тип
  • float — числовой тип с плавающей точкой, содержащий целые и дробные числа
  • string — строковый тип

2 составных типа:

  • array — массив с упорядоченным списком элементов
  • object — объект

2 специальных типа:

  • resource — ссылка на внешний (абстрактный) ресурс.
  • NULL — пустой тип, без значения

Какой тип типизации данных в PHP?

В PHP используется динамическая типизация, не требующая объявления переменной и указания ее типа при объявлении.

Что такое конструктор?

Конструктор это метод _constructor(), который вызывается при создании экземпляра класса с помощью ключевого слова new.

Обязательно ли использовать закрывающий тег ?> в конце файла?

Нет, не обязательно. В файлах, где только PHP код, его лучше не использовать, чтобы предотвратить случайное попадание конечного пробела в вывод.

Как в PHP сделать множественное наследование?

В PHP нельзя сделать множественное наследование. У класса может быть только один родитель. Для эмуляции множественного наследования можно использовать функцию _call() или трейты (traits). Трейт позволяет группировать и повторно использовать наборы методов в нескольких классах.

В чем разница между require(), require_once(), include(), include_once()?

  • require() просто подключает в текущий файл указанный
  • require_once() подлключает указанный файл в текущий только в том случает, если он не был ранее подключен
  • include() работает также как и require(), подключает файл и в случае ошибки возвращает WARNING, в то время как require() возвращает FATAL ERROR
  • include_once() работает также как и require_once(), подключает файл если он не был ранее подключен и возвращает WARNING, в то время как require_once() возвращает FATAL ERROR.

В чем отличие цикла while от do while?

Тело цикла do-while выполнится хотя бы один раз, так как условие проверяется в конце цикла, в то время как в цикле while условие проходит проверку вначале.

Дан массив [1,2,3,4,5,6,7]. Как перевернуть его и получить [7,6,5,4,3,2,1]?

Чтобы перевернуть массив, можно использовать функцию array_reverse()

Дана строка «Hello world!». Как перевернуть строку?

Чтобы перевернуть строку, можно использовать функцию strrev()

Что такое рекурсия?

Рекурсия — это вызов функции из самой себя.

Что такое преинкремент и постинкремент?

Преинкремент (++$i) увеличивает значение, затем возвращает его.
Постинкремент ($i++) возвращает значение, затем увеличивает его.

Что работает быстрей: преинкремент или постинкремент?

Преинкремент работает быстрее, изменяя содержимое самой переменной, в то время как постинкремент создает временную переменную.

В чем разница между одинарными и двойными кавычками в php?

В отличии от одинарных, данные в двойных кавычках парсятся.
Например, при использовании двойных кавычек результат выведет Hello, а одинарные кавычки выведут переменную как текст, а не ее значение:

Как получить максимальное значение элемента массива [1,2,3,4,5,10,20,30,40,50,70,100, 10, 30, 50]?

Для получения максимального значения массива можно использовать функцию max().

Либо сделать это через цикл:

Что такое магические методы в PHP?

Магические методы — это зарезервированные методы PHP, начинающиеся с двойного подчеркивания __

Что такое MVC?

MVC (Model-View-Controller) схема шаблона проектирования, разделенный на три компонента для работы с базой данных, интерфейсом отображения данных, взаимосвязью приложения с пользователем.

Модель отвечает за работу с информацией из базы данных.

Собеседование: логические задачи (часть 1)

Представление отвечает за отображение полученной информации на экран. Контроллер отвечает за взаимодействие между данными и отображением.

Что такое объектно-ориентированное программирование?

Объектно-ориентированное программирование — это парадигма программирования с использованием объектов и классов.

Назовите основные концепции объектно-ориентированного программирования

Основными концепциями объектно-ориентированного программирования являются: инкапсуляция, наследование, полиморфизм.

Инкапсуляция объединяет методы и данные и защищает от внешнего вмешательства или неправильного использования. Наследование позволяет одному объекту наследовать методы и свойства другого объекта.

Полиморфизм создает общий интерфейс для схожих по смыслу действий, чтобы решать множество разных задач.

Что такое виртуальный метод?

Виртуальный метод является переопределенным методом класса в классах-наследниках для вызова во время исполнения.

Что такое класс?

Класс это модель еще не существующего объекта, описывающая устройство бъекта — его методы и свойства.

Что такое объект?

Объект это данные и методы для их обработки.

Что такое члены класса?

Членами класса называют данные и методы объекта.

В чем отличие класса от объекта?

Объект является экземпляром типа класса. Класс является типом данных.

Что такое область видимости переменной?

Область видимости переменной — это область, в пределах которой метод или переменная продолжает работать и возвращать значение.

Есть несколько типов определяемых область видимости методов и переменных:

  • public — переменная доступна из любого места
  • protected — защищенная переменная доступна только внутри класса, в котором была объявлена и из производных классов
  • private — закрытые методы и переменные доступны только внутри класса

В чем отличие локальной переменной от глобальной переменной?

Локальные переменные доступны только в конкретном методе, а глобальные во всей программе.

Что такое абстрактный класс?

Абстрактный класс в объектно-ориентированном программировании — это базовый класс, который не предполагает создания экземпляров. Абстрактные классы реализуют на практике один из принципов ООП — полиморфизм. Абстрактный класс может содержать (и не содержать[1]) абстрактные методы и свойства.

В чем разница между абстрактным классом и интерфейсом?

Абстрактный класс — имеет хотя бы один метод и обозначается как abstract.
Интерфейс — это тоже абстрактный класс, но он не может иметь свойств, и не определено содержимое методов.

Зачем интерфейс, когда есть абстрактный класс?

Произвести наследование можно только от одного абстрактного класса, но реализовать множество интерфейсов. Абстрактный класс наследуется, а интерфейс реализуется.

Уважаемый пользователь! Реклама помогает поддерживать и развивать наш проект. Просьба отключить блокировку рекламы.

Подробней

IT-менеджмент, разработка программного обеспечения и веб-сервисов, консультация в сфере IT.

Источник: https://steptosleep.ru/%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-%D0%BD%D0%B0-%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8/

Вопросы-головоломки на собеседованиях с ответами. Часть 1

Задачи на аналитическое мышление на собеседовании

Соискателям, столкнувшимся с головоломками в процессе собеседования, не стоит паниковать и теряться.

Как правило, в большинстве случаев достаточно показать ход ваших мыслей и пути решения поставленной задачи. Вполне может быть, что у задачи и нет правильного решения или однозначного ответа.

Ни в коем случае нельзя говорить «я не знаю» или «затрудняюсь ответить», просто размышляйте вслух.

Чтобы вы знали к чему быть готовыми и не растерялись, Work.ua собрал самые популярные вопросы-головоломки и подготовил ответы и рекомендации к ним. Кто знает, может вам попадутся именно эти задачи.

Все эти головоломки могут вам задать при собеседовании на вакансию программиста php.

Канализационные люки

Это, пожалуй, самый распространенный вопрос среди всех головоломок.

Вопрос: Почему канализационные люки круглые?

Ответ: Есть несколько вариантов. Так как диаметр круга одинаков, как его не крути, то круглый люк не может провалиться в колодец. У квадрата же, например, диагональ больше его сторон, поэтому крышка могла бы упасть. Также можно ответить, что круглые люки проще транспортировать и передвигать.

Лампочки

Вопрос: В закрытой комнате есть 3 лампочки, а в коридоре 3 выключателя. За какое минимальное открытие дверей можно определить какой выключатель к какой лампочке относится?

Ответ: За одно открытие. Включаем одновременно 2 выключателя, через некоторое время выключаем второй. Заходим в комнату: одна из лампочек осталась гореть — это первый выключатель, далее щупаем оставшиеся лампочки — теплая и будет вторым выключателем, а холодная соответственно третьим.

Торт

Вопрос: Как разделить торт на 8 равных частей тремя разрезами?

Ответ: Сперва нужно сделать 2 разреза крест на крест, поделив торт на 4 равных части. А затем разрезать торт горизонтально пополам. Ну и что, что куски стали невысокие, зато у вас 8 равных частей. Еще можно после первых двух разрезов сложить кусочки друг на друга и переполовинить одним разрезом.

Мертвый человек и спичка

Вопрос: Среди поля найден мертвый человек со спичкой в руках, следов нет. От чего он умер и при каких обстоятельствах?

Ответ: Человек умер от падения с самолета, который начал терять высоту, и авария была неизбежна. На всех пассажиров не хватило одного парашюта и они тянули жребий. Ему досталась короткая спичка, и он был вынужден прыгать без парашюта.

Автобус и мячи

Вопрос: Сколько теннисных мячей поместится в автобус?

Ответ: Точного правильного ответа не знает и сам рекрутер, так как не уточняется, что за мячи и автобус — их размеры не известны, и никто досконально это не проверял. Поэтому тут важен ход ваших мыслей, вы можете только предположить. Назовите примерные длину, ширину и высоту автобуса, размеры одного мяча.

Посчитайте объем автобуса и мяча — так вы узнаете сколько мячей поместится в пустой автобус. Уменьшите примерно это значение с учетом сидений и других деталей автобуса, сделайте поправку на то, что мячи не квадратные и дайте ответ. В этом случае процесс поиска ответа важнее самого ответа.

Варианты вопроса могут быть разные: мячи — футбольные, вместо автобуса — комната и т.п.

Таблетки

Вопрос: Доктор выдал пациенту 4 таблетки двух видов — по 2 таблетки каждого, которые нельзя отличить по внешнему виду. Таблетки надо выпить за два приема: утром по одной таблетке каждого вида и так же вечером. Если нарушить дозировку или не принять таблетки, то пациент умрет. Так вышло, что таблетки перемешались. Как пройти курс лечения и выжить?

Ответ: Конечно, можно сказать, что лучше пойти к врачу и попросить еще, все таки вопрос жизни и смерти.

Но это могут быть единственные таблетки на Земле, доктор может исчезнуть при загадочных обстоятельствах и т.д. Так что ответить все же придется.

К тому же все достаточно просто: нужно разделить каждую таблетку на 2 части и выпить по половинке каждой таблетки утром и вечером.

В заключение

Помните, что прежде всего такие задачи и головоломки предназначены для того, чтобы проверить поведение кандидата в нестандартных ситуациях, оценить способность к размышлению, творческому и логическому подходу.

Увы, нередки случаи, когда интервьюер не может правильно интерпретировать результаты таких вопросов, или вовсе не понимает их предназначения.

Но даже в этой ситуации уверенное поведение и стремление прийти к ответу покажут вас с лучшей стороны и увеличат шансы получить должность.

Источник: https://www.work.ua/ru/articles/jobseeker/668/

Адвокат24
Добавить комментарий