Недавно случайно наткнулся на nplus1 на коммерческую статью, предлагающую решить восемь несложных задачек для прохождения собеседования на должность программиста в банк. Мне стало интересно, что нынче требуют от банковских программистов. К тому же, было приятно немного, так сказать, тряхнуть стариной и пописать пусть и совсем школьные, но формулы. Задачки, конечно, совсем простые (как и бывают на собеседованиях), но я всё-таки решил их разобрать. For teh lulz, ofc.

1

Блокчейн-евангелист может произнести слово «blockchain» до 6 раз в минуту. Посчитайте, какое максимальное количество раз наш герой произнесет это слово за время панельной дискуссии на инновационном форуме, если известно, что каждое выступление спикера длится 5 минут, один спикер не может выступать 2 раза подряд, общее время панельной дискуссии ограничено 1 часом.

Ну, тут всё понятно: максимально блокчейн-евангелист во время панельной дискуссии на инновационном форуме может говорить о блокчейне без остановки, т.е. упомянуть блокчейн 360 раз. Потому, что он может говорить о блокчейн и во время выступлений других докладчиков. Хотя, корректный ответ, конечно, 180: если он будет выступать по пять минут через раз.

2

Бухгалтер Сергей, скучая на работе, задумал число. Балуясь с калькулятором, он обнаружил, что это число, умноженное на 10, 100 и 1000, делится на 3, 33 и 333 соответственно. Чему равно минимальное число, задуманное скучающим бухгалтером Сергеем?

Эту задачу можно, конечно, легко решить машинным перебором. Но если немного подумать и вспомнить признаки делимости, то умножение числа на 10, 100 и 1000 никак не меняет его делимость на 3, 33 и 333. То есть, задуманное Сергеем число изначально должно быть делимо на 3, 33 и 333. Таким образом, нам нужно найти все простые числа, составляющие делители.

3 — уже простое число. 33 делится на простые числа 3 и 11. 333 — на 3 и 111. 111 — на 3 и 37. Таким образом, набор простых делителей искомого числа будет составлять 3, 11 и пару 3 и 37. что бы найти минимальное делимое на все эти простые делители число, нам нужно их перемножить:

3 \times 11 \times 3 \times 37 = 3663.

Это и будет искомым ответом. Однако, на самом деле, дать правильный (удовлетворяющий условию) ответ можно было сразу: минимальное число, делящееся на 3, 33 и 333 (и вообще на любое другое) — это ноль. Но задачу можно решить ещё интереснее, если брать и отрицательное числовое полукольцо: минимальным была бы -\infty. Однако, бухгалтер Сергей не настолько хитёр. Да и тут уже можно поспорить, является ли бесконечность числом. И её точно нельзя посчитать на калькуляторе.

 3

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

Очень простая задача, в которой необходимо внимательно отнестись к условию. В нём сказано о «любой тройке». Если девушек будет 27, то все любые тройки будут состоять из 3 девушек. Если 26 — найдётся такая тройка, где будет 2 девушки. И так далее. Если девушек на хакатоне будет 24, то уже найдётся такая тройка, где их нет. Так что правильный ответ: 25.

4

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

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

1^3 + 2^3 + 3^3 = 39.

Если же в одном наборе не может быть повторяющихся типов бутербродов, то необходимо посчитать сумму сочетаний:

C^1_3 + C^2_3 + C^3_3,
C^k_n = \frac{n!}{k!(n-k)!}.

И получим:

\frac{3!}{1!(3-1)!} + \frac{3!}{2!(3-2)!} + \frac{3!}{3!(3-3)!} = 7.  

5

Дворик одного московского дома имеет квадратную форму. В рамках реконструкции московских дворов одну траншею вырыли по периметру, а другой разделили двор пополам. Оказалось, что периметры обоих кусков совпадают и равны 24 метрам. Чему равна максимальная возможная площадь двора?

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

Варьируемым параметром в таком случае является только угол наклона траншеи \alpha. Выразив площадь фигуры через этот параметр можно легко произвести оптимизацию, найдя максимум.

Периметр и площадь трапеции:

P = a+b+c+h, S = \frac{1}{2}h(a+b).

Так как a+b=h, a c = h/\sin\alpha то:

P = 2h+\frac{h}{\sin\alpha}, S = \frac{1}{2}h^2.

Так как периметр подфигуры известен, подставим его в предыдущее и получим уравнение h=f(\alpha). Подставив найденное h в выражение площади получим искомое уравнение S=f(\alpha):

24 = 2h+\frac{h}{\sin\alpha} \Rightarrow 24 = \frac{2h\sin\alpha + h}{\sin\alpha} \Rightarrow h = \frac{24\sin\alpha}{2\sin\alpha + 1};
S = \frac{1}{2}\left(\frac{24\sin\alpha}{2\sin\alpha + 1}\right)^2; S_{\Sigma} = 2S \Longrightarrow S_{\Sigma} = \left(\frac{24\sin\alpha}{2\sin\alpha + 1}\right)^2. 

Построив график, получим такую диаграмму. На ней видно, что максимальная площадь S_{\Sigma} всего квадрата равна 64 и такой она будет при \alpha = 1.5707 радиан, или 90 градусах. То есть, когда трапеция вырождена в прямоугольник. Ответ — 64 квадратных метра.

6

Маша вышла из дома, а через 12 минут оттуда же вышли Миша и Гриша. Миша шел вдвое быстрее, чем Гриша, и догнал Машу за 4 минуты. За сколько минут Машу догонит Гриша?

Основная сложность этой задачи — имена персонажей, в них легко запутаться. Но, по существу, тот путь, что Маша проделала за 16 минут (12 + 4), Миша проделал за 4. То есть он идёт в 4 раза быстрее Маши. Если Гриша идёт в два раза медленней Миши, то его скорость в два раза быстрее скорости Маши. Таким образом, Грише потребуется 6 минут, что бы ликвидировать отставание за первоначальную фору в 12 минут, и ещё 6 минут, что бы догнать Машу. Ответ — 12 минут.

7

Антон и Миша считают деревья, растущие вокруг пруда. Они двигаются в одном направлении, но начинают счет с разных деревьев. То дерево, которое Миша назвал вторым, для Антона оказалось шестым, а дерево, которое Миша назвал шестнадцатым, для Антона оказалось третьим. Сколько деревьев растет вокруг пруда?

Элементарнейшая задача, но на которой можно случайно ошибиться при учёте пограничных деревьев. Но тут всё ещё проще. Если для 6-е дерево — второе, то дельта счёта составляет 4. Таким образом, если 3-е дерево — 16-е, то 3-4=-1, то есть всего вокруг пруда растёт 17 деревьев.

comments powered by HyperComments