Страхование (КАСКО, ОСАГО)

Логические задачи для программистов

Логические задачи для программистов

Классическая задачка с собеседований Google: продолжите последовательность

  1. , 22 октября 2015 в 13:58

Никита Прияцелюк На доске записаны числа, вам нужно ответить на вопрос: какое число идёт дальше? Чаще всего все пытаются отыскать – безуспешно – какую-либо закономерность в серии чисел, которая кажется совершенно бессмысленной. Но здесь нужно забыть математику. Произнесите эти числа на английском (см.

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

10 – не единственное число из трёх букв. На этом месте могло бы быть 1, 2 и 6 (one, two и six). То же можно сказать и про 9, подойдут 0, 4 и 5 (zero, four и five). Таким образом можно сделать вывод, что в список включены самые крупные числа из тех, что можно выразить словами с заданным числом букв.

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

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

Немного подумав, можно сказать, что ответ будет 96 (ninety-six).

Вы понимаете, что сюда не подходят числа, превышающие 100, поскольку для «one hundred» уже нужно десять букв.

Может быть, у вас возникнет вопрос, почему в приведённом списке на месте 70 не стоит сто (hundred), или миллион, или миллиард, для написания которых также нужно семь букв. Скорее всего потому, что на правильном английском языке говорится не «сто», а «одна сотня», то же относится и к двум другим случаям.Казалось бы, всё, вот он правильный ответ.

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

Есть число побольше: 10 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000, которое записывается как «one googol» (девять букв). Однако и это еще не самый лучший вариант.

Идеальный ответ: «ten googol», десять гуголов.

Хотите узнать историю этого ответа? Погуглите;) Разбор головоломки по книге Не смешно?

А здесь смешно:

Задача 3. Без посредников

Имеется два числа. Можно ли поменять их местами без использования дополнительной переменной?

Как потом оказалось, это довольно популярная задачка.

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

Поскольку арифметические показались проще, то я решила использовать их.

РешениеПусть у нас есть A и B.

A = A + B B = A – B // После этого B становится A, т.к.

в действительности получаем (A + B) – B = A A = A – B В этом решении есть большой минус: возможность переполнения.

Поэтому лучше использовать поразрядную операцию XOR. A = A ^ B B = A ^ B A = A ^ B Как это работает: в первой строке мы получаем маску на различающиеся биты, в этих разрядах будут стоять единички. Далее производится сброс и выставление нужных бит для обмена значений.

На примере будет наглядней. Рассмотрим обмен чисел 5 и 9.

A = 0101 ^ 1001 = 1100 B = 1100 ^ 1001 = 0101 A = 1100 ^ 0101 = 1001 Осталось только пожелать всем успешных собеседований! А в комментариях можете написать, какие задачи встречались вам.

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

Например: программирование, алгоритмы Сохранить Ой, у вас баннер убежал!
  1. 2k
  2. 59,8k
  3. 6,5k
  4. 10,1k
  5. Мегапост
  6. 22,6k
  7. 8,1k
  1. 90,7k
  2. +11
  3. 184

Выберите рекомендации для отправки автору: Указан только блог Орфографические ошибки Пунктуационные ошибки Отступы Текст-простыня Короткие предложения Смайлики Много форматирования Картинки Ссылки Оформление кода Рекламный характер Отправить Нарушение Опишите суть нарушения Отправить Программист C++ Поделиться публикацией

  1. 11 мая 2017 в 09:55 +12 50,2k 249
  2. 22 июня 2015 в 12:11 +22 54,8k 514
  3. 29 марта 2020 в 10:31 +13 16,2k 44

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Знание технологий

Второй тип вопросов, которые я задавал, был связан со знанием инструментов, механизмов, технологий, например:

  • Какие недостатки у MS SQL Server и MySQL? В чем их принципиальное отличие?
  • Как в Java сделать вызов функции из dll-библиотеки, написанной на C++.
  • Расскажите, что такое инкапсуляция.

Со временем я отказался и от этих вопросов.

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

Просто ему не требовалось. Зато он может с ходу написать эффективный алгоритм сжатия строки или драйвер какой-нибудь. Про холивары между разными СУБД я вообще молчу, всегда можно открыть документацию, форумы, и почитать, что да как.

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

Посмотрите как это делают другие и все у вас получится.

28 cайтов, на которых можно порешать задачи по программированию

  1. , 27 октября 2015 в 20:00

Не секрет, что лучший способ повысить свои навыки в программировании — это практиковаться и только практиковаться.

Мы подготовили для вас огромную подборку сайтов с задачами по программированию на самые разные темы. — несомненно самая популярная и известная платформа во всем мире для проведения соревнований на алгоритмику. Кроме крупных контестов сайт зачастую проводит свои «раунды» — участникам даются 5 задач на два часа.

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

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

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

Также тут регулярно проводятся контесты уральского региона, которые, впрочем, не представляют для вас ничего интересного, если только вы не студент УрФУ или другого близлежащего вуза � — крупный англоязычный сайт с более чем 20000 задачами на абсолютно разные темы: динамическое программирование, графы, структуры данных и т.д. Изредка проводит контесты, которые не представляют интереса, если вы не живете в странах их проведения.

— платформа с множеством теоретических материалов и задач по соответствующим темам.

Все очень удобно собрано по категориям и темам.

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

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

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

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

Например, одна из задач, на которой сейчас там проверяют свои умения участники, состоит в распознании написанных вручную цифр. Вот несколько символов, для которых это не так просто, как кажется (прим. авт. — некоторые из них я не смог распознать даже не программно): — сайт, на котором программирование и видеоигры сливаются в единое целое.

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

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

будет больше полезен для новичков.

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

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

Если вы давно мечтали заняться программированием, но никак не находили в себе, обязательно обратите внимание на этот сайт.

наоборот будет больше интересен профессионалам, которые уже многое умеют.

На этом сайте собрано множество задач на самые разные разделы Computer Science: традиционная алгоритмика, ИИ, машинное обучение и т.д. Если вы решите много задач, то вами могут заинтересоваться работодатели, регуляторно мониторящие эту платформу.

— подборка головоломок, специфичный для языка С, со всеми его причудами.

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

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

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

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

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

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

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

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

— практика написания кода на Go в игровой форме.

— ежегодный контест от mail.ru по разработке ИИ. Участвовать могут все — от школьников до профессионалов.

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

В включены лучшие из них (она регулярно обновляется). Не смешно? А здесь смешно:

  1. ,

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

Задача 7. Эту задачку описал пользователь, которого собеседовали на позицию senior systems engineer.

Он отметил в описании задачи, что у него был свой ответ, по поводу которого он долго спорил с человеком, проводившим собеседование.

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

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

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

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

«из-за ретрансмиссии пропускная способность должна быть уменьшена больше, чем на 1/10»

.

Дюжина логических задач с собеседований

24 июля 2014 в 00:14

  1. ,

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

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

Ответы пока что публиковать не буду, надеюсь, вы сами сможете всё решить. Предлагаю размять свой мозг. 1) Человек построил дом, все стены которого смотрят на юг.

К нему в дом забрался медведь. Какого цвета медведь? 2) На столе 12 монет, одна из которых фальшивая.

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

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

4) Даны две веревки и спички.

Каждая из верёвок сгорает за 1 час, но горят они неравномерно, поэтому нельзя точно узнать, какая часть веревки за какое время сгорит. Как отмерить при помощи этих веревок интервал в 45 минут? 5) В офис привезли три автомата с напитками.

Первый выдаёт чай, второй кофе, а третий случайным образом чай или кофе.

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

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

6) Есть два абонента A и B, почтальон C и открытый сейф с двумя замками.

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

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

7) Путник находится в лесу в какой-то случайной точке. Известно, что площадь леса равна S, а форма может быть совершенно произвольная, однако в лесу нет полян. По какой траектории нужно двигаться путнику, чтобы гарантировано выйти из леса затратив минимальный по длине маршрут?

8) Путешественник прошёл один километр на юг, затем один километр на запад, а после один километр на север и вернулся в исходную точку.

Сколько существует таких мест на земле?

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

Как это эффективно сделать? 10) Есть огромный файл в несколько гигабайт, в котором записаны целые числа. Известно, что каждое число встречается два раза, но есть единственное число, которое встречается один раз. Предложите эффективный алгоритм для поиска этого числа.

Как изменится алгоритм, если каждое число будет встречаться в файле чётное число раз, а единственное из них нечётное число раз? 11) Есть огромный файл, в котором записаны все целые числа из диапазона от 1 до 10^9 в произвольном порядке. То есть в файле есть абсолютно все числа из этого диапазона, и встречаются они лишь по одному разу.

Однако одно число встречается два раза. Как найти это число эффективным образом?

12) Сколькими способами можно разложить на 6 целых множителей 1 000 000? P.S. Любителям геометрии на закуску Теги: Добавить метки Укажите причину минуса, чтобы автор поработал над ошибками Отправить анонимно Пометьте публикацию своими метками Метки лучше разделять запятой. Например: программирование, алгоритмы Сохранить Ой, у вас баннер убежал!

  1. 59,8k
  2. 8,1k
  3. Мегапост
  4. 6,5k
  5. 2k
  6. 22,6k
  7. 10,1k
  1. 966
  2. 235k
  3. +39

Выберите рекомендации для отправки автору: Указан только блог Орфографические ошибки Пунктуационные ошибки Отступы Текст-простыня Короткие предложения Смайлики Много форматирования Картинки Ссылки Оформление кода Рекламный характер Отправить Нарушение Опишите суть нарушения Отправить Пользователь Поделиться публикацией

  1. 1 августа 2014 в 12:32 +4 8,2k 32
  2. 19 ноября 2017 в 22:35 +16 7,2k 19
  3. 31 августа 2017 в 21:45 +4 12,6k 61

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

15 логических задач, которые стало модным предлагать на собеседовании (15 фото)

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

Причем, зачастую, список таких задач у разных работодателей один и тот же:) Так что перед собеседованием не поленитесь потренироваться, ну, или хотя бы запомнить ответы 🙂 Человек этот очень маленького роста (лилипут). Самостоятельно до кнопки 17-го этажа дотягивается он только зонтиком или просит кого-нибудь нажать на эту кнопку. × Уносящийся течением воздуха шар находится в покое по отношению к окружающему воздуху, потому флаги не станут развеваться на ветру ни в какую сторону, а будут свисать вниз, как в безветрие.

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

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

Оба человека говорят неправду. Потому как, если врёт первый человек, то с темными волосами — мужчина.

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

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

Там — только переплёты. За 10 дней. Если первый грибник за 35 дней собирает 10 ведер грибов, то выходит, что за 70 дней он насобирает 20 ведер грибов.

А если второй грибник за 14 дней собирает 10 ведер грибов, то за 70 дней он насобирает 50 ведер грибов. Следовательно, действуя вместе, за 70 дней они насобирают 70 ведер грибов. В итоге, 10 ведер они насобирают за 10 дней.

Да, такое место есть. Это южный географический полюс. В какую бы сторону от него вы не шли, направление будет только одно — на север, ведь вокруг него везде север. Поэтому стрелка компаса, помещенного на южный полюс, обоими своими концами будет указывать на север.

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

Тридцать первое (имеется в виду число месяца).

Его положили вплотную к стене. Так ведь он вполз в неё — в комнату.

А зачем им разъезжаться? Они же обе вниз (под гору и с горы) едут.

Кроме кода

Если же кандидат претендует на звание senior-разработчика, мы обязательно постараемся понять, имеет ли он представление о планировании архитектуры системы. Часто мы говорим о подходе к разработке. Это особенно важно для людей, которые утверждают, что имеют опыт управления проектами, но также мы часто беседуем на эти темы и с обычными разработчиками, в этом случае это уже не тест, скорее мы просто хотим понять, чего человек ждет, и будет ли ему у нас комфортно работать.

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

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

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

У всех есть свои интересы и предпочтения, а возможность выбора – это всегда приятно. В конечном итоге, мы принимаем решение, подходит нам кандидат или нет. Однако окончательно ясно, приживется ли человек в Яндексе, становится после испытательного срока.

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

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

Вам также может понравиться...