Как надевают носки настоящие программисты

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

Как надевают носки настоящие программисты

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

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

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

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

Для одной пары

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

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

Для двух пар

Две пары могут быть разного цвета — давайте это учтём при решении.

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

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

По-научному такой перебор носков и поиск пары называется комбинаторика. Она изучает все возможные комбинации из любых объектов и количество таких сочетаний. В ней есть специальные формулы, которые позволяют легко находить ответ без долгих рассуждений или подсчётов в уме. Например, с помощью комбинаторики можно быстро определить количество выигрышных комбинаций в «Русском лото» или подобрать пары дежурных в классе таким образом, чтобы их состав не повторялся как можно дольше. Мы ещё вернёмся к комбинаторным задачам в будущем.

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
Делаем собственный таймер для спорта
Делаем собственный таймер для спорта

Без рекламы и встроенных покупок.

hard
Задача о двоичной мыши и тысяче пробирок
Задача о двоичной мыши и тысяче пробирок

Самое лучшее объяснение двоичной системы счисления.

hard
Как взорвать ракету одной переменной
Как взорвать ракету одной переменной

Краткий мастер-класс по правильному объявлению типов данных.

easy
Задача о деньгах
Задача о деньгах

Пропало 300 рублей, но никто этого не заметил.

medium
Задача про границы, где вам нужно выйти за них, чтобы её решить
Задача про границы, где вам нужно выйти за них, чтобы её решить

С первого раза у вас точно не получится

easy
Что не так с задачей для советских школьников из Ютуба
Что не так с задачей для советских школьников из Ютуба

Для решения там используют обычные хозяйственные…

easy
Как поделить премии?
Как поделить премии?

Помогите начальнику отдела.

easy
Задача про кубик, которую очень сложно решить в уме, но очень просто — на бумаге
Задача про кубик, которую очень сложно решить в уме, но очень просто — на бумаге

Вам понадобится всё ваше воображение

easy
Интересная задача на логику про ключи и пессимиста
Интересная задача на логику про ключи и пессимиста

Ищем самые неудачные попытки

easy
easy