215209

Логические и математические задачи с собеседований

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

Основные проблемы, которые часто возникают в процессе интервью, не в отсутствии опыта или подготовки. Даже по-настоящему опытный разработчик может легко "споткнуться" о  решение какой-нибудь хитро скроенной задачки. Поэтому мы поговорим не о том, как составлять резюме и выгодно презентовать себя. Фокусируемся на решении нетривиальных задач, которые включают в себя решение логического и/или математического характера.

"Крепкий орешек"

Помните загадку из третьего фильма? Если нет, то вспоминайте, так как этим вопросом любят потчевать в Microsoft.

Задача:

Есть 2 пустых ведра: первое объемом 5 л, второе - 3 л. Как с их помощью отмерить 4 литра воды?

[spoiler title='Ответ:' style='default' collapse_link='true']Сперва наполните пятилитровое ведро. Далее перелейте из него воду в трехлитровое так, чтобы в пятилитровом осталось 2 л воды (полностью заполнив трехлитровое). Вылейте из меньшего ведра всю воду и перелейте в него оставшиеся в большем 2 л. Снова наполните пятилитровое и перелейте один литр в трехлитровое (оно как раз заполнится): так в большем ведре останется 4 л воды.[/spoiler]

Онлайн-курc по математике для Data Science

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

Программа занятий:

  • Школьная математика: от теории множеств до производной и интеграла.
  • Математический анализ: от числовых последовательностей до теории меры и интеграла Ламбера.
  • Линейная алгебра: от матриц до билинейных форм.
  • Комбинаторика: правила комбинаторики, множества и сочетания.
  • Теория вероятностей и математическая статистика: от случайных событий до регрессии.
  • Машинное обучение: Word2vec, градиентный спуск, KNN и т. д.

Баночки с таблетками

Задача:

Есть двадцать баночек с таблетками. Почти во всех таблетки весят по 1 г, и только в одной - по 1,1 г. У нас есть точные весы, с помощью которых нужно определить баночку, каждая таблетка которой весит 1,1 г. Как это сделать, если можно взвесить только 1 раз?

[spoiler title='Ответ:' style='default' collapse_link='true']Давайте абстрагируемся и представим, что у нас 2 баночки, в одной из которых таблетки более тяжелые. Даже если мы поставим их обе на весы, мы ничего не узнаем. Но если мы достанем из одной баночки 1 таблетку, из другой - 2 и положим их на весы - вот тогда-то и откроется истина :) В данном случае вес будет 2,1 или 2,2 (в зависимости от того, сколько каких таблеток мы взяли). Так и определяем нашу баночку.

Вернемся к задаче. Из каждой баночки нужно доставать разное количество таблеток. То есть из первой баночки 1 таблетку, из второй - 2, из третьей - 3 и так далее. Если бы каждая таблетка весила по 1 г, общий вес составил бы 210 г. Но поскольку в одной из баночек таблетки тяжелее, вес будет больше. Для определения нужной баночки просто воспользуемся формулой:

№ тяжелой баночки = (вес - 210) * 10[/spoiler]

Но на этом интересные логические и математические задачи не заканчиваются. Идем дальше!

Свидание

Задача:

Парень и девушка договорились встретиться ровно в 21:00. Проблема в том, что у обоих часы идут неправильно. У девушки часы спешат на 2 мин., но она думает, что они на 3 мин. отстают. У парня же часы отстают на 3 мин., но он считает, что они на 2 мин. спешат. Кто из пары опоздает на свидание?

[spoiler title='Ответ:' style='default' collapse_link='true']Ничего сложного: чистая математика. Если у девушки часы спешат, а она думает, что они отстают, то поторопится и придет на 5 мин. раньше. Парень, наоборот, посчитает, что у него еще 5 минут времени в запасе, отчего на эти самые 5 мин. опоздает.[/spoiler]

Считаем вес курицы

Задача:

Длина курицы при измерении от головы до хвоста составит 45 см, а вот от хвоста до головы (если измерять вдоль брюха) - 53 см. По статистике плотность курицы на единицу боковой проекции составляет 8 г/см2. Усредненная высота курицы, если мерить ее вдоль боковой поверхности, - 21 см. Сколько весит килограмм курицы?

[spoiler title='Ответ:' style='default' collapse_link='true']Килограмм курицы весит 1 килограмм.[/spoiler]

Да, математические задачи с подвохом тоже встречаются :)

Книжные страницы

Задача:

Книга содержит N страниц, которые пронумерованы стандартно: от 1 до N. Если сложить количество цифр (не сами числа), что содержатся в каждом номере страницы, выйдет 1095. Так сколько в книге страниц?

[spoiler title='Ответ:' style='default' collapse_link='true']Каждый номер страницы имеет цифру на месте единицы, так что есть N цифр, расположенных на месте единицы. А вот после 9 начинаются двухзначные числа, и нам нужно добавить N-9 цифр. То же самое с трехзначными, которые начинаются после 99: добавляем N-99 цифр. Продолжать нет смысла, так как сумма не предполагает более 999 страниц. Получаем следующую формулу:

N + (N-9) + (N-99) = 1095

Далее просто решаем:

3N - 108 = 1095

3N = 1203

N = 401

Итого 401 страница.[/spoiler]

Посчитать в уме

Задача:

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

[spoiler title='Ответ:' style='default' collapse_link='true']Первое решение, которое обычно приходит на ум, ошибочно:

30/2 + 10 = 25

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

30*2 + 10 = 70[/spoiler]

Цифра 3

Задача:

Сколько целых чисел в диапазоне 1-1000 вмещают в себя цифру 3? При подсчете нельзя пользоваться компьютером.

[spoiler title='Ответ:' style='default' collapse_link='true']Запомните, что нам нужно учесть просто факт содержания в числе тройки. Если, например, это 33 - мы не считаем цифру 2 раза. В числе должна быть по крайней мере одна тройка, чтобы его учесть. Например, числа в диапазоне 300-399 дают нам сразу 100 чисел. Еще 10 мы получаем от 30-39. То же касается 130-139, 230-239, etc. Десяток этих чисел уже был учтен при подсчете 330-339, так что убираем его и получаем:

100 + 90 = 190

А еще есть группа чисел (их 100), которые заканчиваются на тройку: 2-993. Мы исключаем из нее такие 10 чисел, как 303, 313 ... 393 (они учтены ранее). Получаем еще +90 чисел. У 1/10 из этих 90 на месте десяток также расположилась тройка: 33, 133 ... 933. Убираем еще 9, оставляя 81 число. Дальше простая математика:

100 + 90 + 81 = 271

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

9 * 9 * 9 = 729

1000 - 729 = 271[/spoiler]

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

Дополнительные логические и математические задачи:

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
18 июля 2019

Логические задачи: 15 упражнений для тренировки мозга

Программистам без логики никуда. Поэтому время прокачать мозг: проверьте св...
admin
20 октября 2016

27 сайтов с задачками для оттачивания навыков программирования

<strong>Решение задач — хороший способ развить навыки разработки.</strong>