Обновить
28.55

Занимательные задачки

Разминаем мозги

Сначала показывать
Порог рейтинга

Зовём вместе поучаствовать в Advent of Code 2025

Начинаем уже в следующий понедельник, присоединяйтесь! 🙌

В чём суть, если кто не в курсе

Как в адвент-календаре, каждый день, с 1 по 12 декабря на сайте adventofcode.com будут появляться задачи на программирование, которые нужно решать. Обычно это задачи на рождественскую тематику.

Мы собрали троих молодых ребят из крупных IT-компаний (один из них конечно же контуровец) — Лавра, Пашу и Костю — которые публично посоревнуются друг с другом в выполнении задач Адвента, а мы будем за ними наблюдать в этой группе каждый день. Вступайте, чтобы присоединиться к нашему комьюнити и оставаться на связи, когда всё начнётся. У нас ещё и чат отдельный есть, чтобы вместе обсуждать решения и задачи. 

Подробности участия собрали тут. Будем рады видеть в нашем комьюнити, если захотите разделить эмоции от Адвента с нами! 😉

Теги:
+2
Комментарии0

Отправляемся на поиски пропавших кодов!

Наш детективный спецпроект стартует уже сегодня. Каждый день до 28 ноября мы будем прятать на сайте специальный код. Ваша задача — отыскать его и прислать нам. Маленькая подсказка: не бойтесь заглядывать в инструменты разработчика 😉

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

Каждый день вас ждет новая страница и новый вызов, а первый код мы уже спрятали! Зарегистрируйтесь, а затем попробуйте отыскать его ➡️

Теги:
+7
Комментарии0

Квиз: насколько вы разбираетесь в играх 90-х

Помните мелодию из Марио? Этот джингл, (который у вас, вероятно, заиграл в голове) — символ эпохи, которая для многих открыла мир видеоигр. 

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

Пройти квиз →

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

Теги:
+7
Комментарии6

Дело было 20 лет назад.
Мы уже не студенты, но и до взрослой жизни как до Луны пешком.
Ни забот, ни логики - зато с гормонами и амбициями.
Нулевые.

И вот барышня в ЖЖ (да-да, это как Телеграм, только с модемным писком и на сайте) пишет:

«А давайте встретим Новый год в Коктебели»

Один пост - и пол-рунета в кассах. В итоге мы выкупили поезд. А может, и два.

Картина маслом: декабрь, летний курорт, и целый состав, набитый незнакомыми людьми, которые решили, что это отличная идея.

Поезд гудел - сначала в прямом, потом и в переносном смысле. Мне кажется, через 3 часа гудеть начали проводники, через 5 - бабушки на перронах. Через 7- птицы и животные, попавшие в воздушный поток состава.

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

Отельчики ещё кое-как принимали, а вот рестораны - сдались без боя. Еда по 3–4 часа, отмены блюд на второй день стали нормой. От массовых погромов спасали только алкоголь и молодость.

Я-то считал поездку сказкой. А оказалось - драки, выбитые зубы и прочие радости, которые я чудом пропустил.
И всё это - в шапочках Санты, на которых красовались наши ЖЖ-ники. Удобно: сразу видно, кто именно выбил тебе зуб. Такой вот рождественский хоррор…

Ну а логика… думаю, она что-то знала и вышла вместе с провожающими еще на Казанском.

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

И раз уж сегодня пятница - пусть она достанется вам.

- Гудящий поезд "Москва-Коктебель" движется по кругу. Наблюдатель находится в одном из вагонов и может:
- ходить вдоль поезда,
- включать/выключать свет в вагоне,
- смотреть в окно (но поезд слишком большой, увидеть «другую сторону» нельзя).

Изначально в каждом вагоне свет может гореть или нет. Это неизвестно.
- Вопрос: как посчитать количество вагонов?

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

-
#вот_не_задача #комплимент_от_шефа

Теги:
-5
Комментарии10

Конкурс для аналитиков! Требуется эксперт на продуктовый А/Б-эксперимент

Команда Garage Eight объединилась с Данилой Елистратовым и собрали классный аналитический кейс, на котором каждый может прочелленджить свою экспертность.

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

Может, это как раз ты? (¬‿¬ )

Задачи:
— убедиться, что сплит-система A/B-теста Датапарка работает верно;
— посчитать результаты теста и понять, выгодна ли новая механика;
— предложить способ определять отложенные заказы;
— объяснить все менеджменту на понятной презентации.

Призы (^-^):

1 место — Симулятор от Karpov.Courses на выбор: Симулятор А/B-тестов, Симулятор data science или Симулятор аналитика. А также бомбер Garage Eight.
2 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
3 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
4 и 5 место — Наборы мерча от Garage Eight

Прием решений: до 2 декабря, 19:00
Проверка: с 3 по 10 декабря
Объявим победителей: 11 декабря

> Узнай все детали и забери материалы кейса здесь: t.me/Garage_DataPark_bot

Теги:
+7
Комментарии0

Промокоды, Тирексы и мерч Selectel для самых внимательных

Легко находите ошибки в коде и от вас не ускользнет ни один баг? Тогда приглашаем принять участие в нашем расследовании с 24 по 28 ноября🔎 

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

Чтобы было еще интереснее, на каждой странице дополнительно спрячем промокоды на 500 бонусов в панели Selectel.

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

Теги:
+6
Комментарии2

Задача про копирование базы данных

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

Условие

Компания «Тирекс&Co» очень боялась потерять базу данных с клиентами и закупила для своих задач партию жестких дисков. Теперь раз в день администратор создает копию от каждой актуальной версии БД на любой диск, на котором еще не было бэкапа. То есть каждый день количество копий базы данных увеличивается в два раза. Через неделю они полностью заполнят все жесткие диски.

Задача

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

Делитесь ходом рассуждений и решениями в комментариях. Кстати, подсмотреть их всегда можно в Академии Selectel.

Теги:
+5
Комментарии2

Сможете решить задачу от экспертов ИТ-компании "Криптонит"?

Джун пишет программу на Python:
x = 0.1 + 0.2
y = 0.3

Какой результат он получит при сравнении переменных различными вариантами:

  1. print(x == y)

  2. print(int(x) == int(y))

Почему так происходит?

Теги:
+1
Комментарии10

Квиз: сможете ли вы найти ошибку в мобильном приложении?

Проверьте свои навыки и получите 1 000 бонусов на тестирование в мобильной ферме Selectel

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

Пройти квиз →

🎁 За участие — 1 000 бонусов в панели управления. Важно: количество промокодов ограничено.

Теги:
Всего голосов 8: ↑6 и ↓2+7
Комментарии0

Квиз: основы работы с базами данных

Если вы изучаете базы данных или давно не работали с ними и хотите проверить знания, приглашаем пройти наш новый квиз. Ответьте на несколько теоретических вопросов и попробуйте расшифровать SQL-запросы — в конце получите промокод на 1000 бонусов в панели Selectel.

Пройти квиз

Не забудьте поделиться результатами в комментариях!

Теги:
Всего голосов 6: ↑6 и ↓0+11
Комментарии1

«В Сан-Франциско самые аутичные рекламные щиты», — написал Габриэль Питерссон, работающий в OpenAI инженер программного обеспечения и исследователь ИИ. К твиту он приложил фотографию билборда, который удостоился такой характеристики.

Габриель Питерссон

Что тут происходит, догадаться легко. Знакомый с заменой текста токенами глаз сразу поймёт, что здесь перечислены номера токенов какой-то языковой модели. Но какой? Опытным путём удаётся установить, что это токенизатор GPT-4o, на данный момент самой популярной модели OpenAI. Номеру 64659 соответствует слово listen, 123310 — .ai, 75584 — /p и так далее. (Вернее сказать, что словам соответствуют токены. Обычно онлайн-инструменты предлагают оценить число токенов для кодирования текста, и найти инструмент для обратного преобразования — та ещё морока).

В результате получается полный УРЛ. По ссылке https://listenlabs.ai/puzzle стоит редирект на berghain.challenges.listenlabs.ai. На этой странице перечисляются правила игры Berghain Challenge: предлагают разработать алгоритм фейс-контроля, где с минимальным числом отказов нужно набрать зал из 1000 человек при множестве долевых ограничений («не менее 40 % берлинцев», «не менее 80% в чёрном» и так далее). Посетители приходят по одному, решение нужно принимать сразу, поток с известными частотами и корреляциями. Сценариев игры три. Людей придёт 20 тысяч, и если зал не набран — проигрыш.

Кроме условий и формы для регистрации для участия в челлендже на странице ведётся таблица со счётом. Как видно, уже больше тысячи человек попытались решить задачу. В таблице также указан результат модели ChatGPT-5 Pro, и лишь двое человек превзошли решение этой языковой модели.

Челлендж работает до 6 утра 15 сентября по часовому поясу Лос-Анджелеса. Победителя на самолёте отправят в Berghain, где подвергнут собеседованию в стартап Listen Labs. Формулировка непонятная — это будет билет в одноимённый берлинский ночной клуб, известный своим строжайшим фейс-контролем, или просто указание на пропуск нескольких раундов собесов? Впрочем, как поясняет сооснователь Listen Labs, это действительно будет вылет в Берлин.

Кстати, тема игры соответствует деятельности стартапа: в нём разрабатывают ИИ-модератора для качественных исследований, то есть бота, который сам проводит интервью с пользователями и суммирует инсайты.

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

Теги:
Всего голосов 6: ↑6 и ↓0+12
Комментарии0

Квиз: насколько хорошо вы владеете Podman

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

Пройти квиз

Не забудьте поделиться результатами в комментариях!

Теги:
Всего голосов 7: ↑7 и ↓0+11
Комментарии0

Квиз: насколько вы разбираетесь в законодательстве и ИБ

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

Квиз проверит, насколько глубоко вы в теме. 

Пройти квиз

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

Теги:
Всего голосов 6: ↑6 и ↓0+14
Комментарии1

Ближайшие события

Задача о котиках и статистической значимости

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

Условие

В компании «Мурзик и котята» резко упали регистрации на сайте. У аналитика появилась гипотеза, как повысить конверсию, и он решил проверить ее с помощью А/В-теста. Первая версия (контрольная) осталась без изменений, а во вторую (экспериментальную) добавили фотографии котят.

Спустя месяц появились первые результаты:

  • старую версию сайта посетили 3 425 человек, из них 45 прошли регистрацию;

  • на новой версии побывали 3 398 человек, зарегистрировались 64.

Порог значимости стандартный — 5%.

Задача

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

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

Теги:
Всего голосов 10: ↑10 и ↓0+15
Комментарии2

Винтик, Шпунтик, включения и исключения.

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

у нас есть грань размера 3x3 и нам надо покрасить 9 ячеек в три цвета. 3 - в красный, 3 - в желтый, и 3 - в зеленый. Сколько существует раскрасок при которых ни одна строка и ни один столбец не закрашены одним цветом?

Картинка ниже дает примеры возможных и невозможных раскрасок

Задачку эту я решил, но решение мне не нравилось, потому что по сути оно является "ручным перебором" возможных раскрасок. И вот недавно, читая статью Артема, я сообразил, что все это можно описать в терминах "формулы включений - исключений". Для этого из полного числа раскрасок в три цвета нам надо исключить все "невозможные". Для это нужно просто аккуратно считать число раскрасок и чередовать знаки. Через к в дальнейшем обозначается номер шага, через n - размерность пространства. через В нашем случае она равна 3.

  1. Шаг 0. Знак +. Полное число раскрасок 9 ячеек в три цвета.

    C_0 =+C(9,3,3,3) = +\frac{9!}{3!3!3!}=+1680

  2. Шаг 1. Знак -. Число раскрасок, при которых одна строка или один столбец закрашен одним цветом. Строки и столбы у нас "равноправны". Таким образом, мы получаем множитель 2, исходя из геометрии (а точнее просто размерности) задачи. Теперь, допустим, мы закрашиваем одну строчку(столбец) каким то одним цветом (допустим красным). Выбор цвета(1 из 3) дает нам С(3,1)=3 варианта. Выбор позиции дает еще 3 варианта. Запишем это как n!/(n-k)! Теперь нам нужно покрасить еще 6 (n(n-1)) ячеек в два цвета (желтый и зеленый). Что дает С(6,3) =  6!/(3!3!)В итоге,

    C_1 =-2*C(3,1)*3!/(3-1)!* C(6,3) = -2*3*3*\frac{6!}{3!3!}=-360

  3. Шаг 3. Знак +. Когда у нас одновременно есть две строки или два столбца закрашенные одним цветом. Аналогично, 2- множитель размерности. Теперь нам надо выбрать 2 из 3 трех цветов. Получим, С(3,2) =3. Геометрическое размещение дает множитель 3!/(3-2)!. Ну и далее нам останется закрасить оставшиеся три ячейки оставшимся цветом. Что дает нам ровно С(3,3) = 1 вариант. Получаем,

    C_2 =+2*C(3,2)*3!/(3-2)!*C(3,3) = +2*3*6*1=+36

  4. Шаг 4. Знак -. Все три столбца или строки закрашены одним цветом. 2 - геометрический множитель. С(3,3) = 1 - выбор цветов. 3!/(3-3)! = 6 количество размещений. Итак,

    C_3 =-2*n! = -2*3!=-12

    А теперь соберем все вместе и получим.

    C = \frac{(n^2)!}{(n!)^n} +2*\sum_{k=1}^n(-1)^kC(n,k)\frac{n!}{(n-k)!}\frac{(n(n-k))!}{(n!)^{n-k}} (*)

Или для нашего случая n = 3

C = C_0+C_1+C_2+C_3=1680-360+36-12 = 1344

И это правильный ответ. При домножении на 2^3 =8дает 10752 - решение задачи Винтика и Шпунтика в тернарном случае.

Формулу (*) наверняка можно как то упрощать, но я не буду сейчас этим заниматься. Скажу лишь, что она работает для любых n. В частности, если нам нужно посчитать раскраски квадрата 4x4 в 4 цвета формула* дает.

C = C_0+C_1+C_2+C_3+C_4=63063000-1108800+10080-192+48=61964136

В кватернарном случае Винтика и Шпунтика дело обстоит сложнее. Появляется дополнительная размерность и исключений становится больше. Однако, достоинством формулы (*) является относительное малое количество слагаемых (пусть и более сложного вида) по сравнению с тем, что предложил Артем.

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

Теги:
Всего голосов 14: ↑14 и ↓0+19
Комментарии1

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

import java.util.stream.Stream;
public class Main {
    public static void main(String[] args) {
        Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
        Integer result = prepareStream(stream);
        System.out.printf("Result after stream processing: %s%n", result);
    }

    private static Integer prepareStream(Stream<Integer> stream) {
        System.out.printf("Incoming stream with: %d elements%n", stream.count());
        return stream
                .map(integer -> integer++ + ++integer)
                .filter(integer -> integer % 3 == 0)
                .reduce(0, Integer::sum);
    }
}

Дальше будет решение, поэтому если не хотите спойлеров — не читайте!

.

.

.

Подвох в том, что будет выброшено исключение:

Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed
 at java.base/java.util.stream.AbstractPipeline.<init>(AbstractPipeline.java:203)
 at java.base/java.util.stream.ReferencePipeline.<init>(ReferencePipeline.java:96)
 at java.base/java.util.stream.ReferencePipeline$StatelessOp.<init>(ReferencePipeline.java:800)
 at java.base/java.util.stream.ReferencePipeline$3.<init>(ReferencePipeline.java:191)
 at java.base/java.util.stream.ReferencePipeline.map(ReferencePipeline.java:190)
 at Main.prepareStream(Main.java:16)
 at Main.main(Main.java:7)

Исключение выбрасывается из-за того, что при выводе в консоль лога с количеством элементов стрима мы использовали операцию stream.count(), которая является терминальной и делает дальнейшее использование стрима невозможным.

System.out.printf("Incoming stream with: %d elements%n", stream.count());

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

С учетом postfix и prefix инкремента числа в каждой итерации мы получаем:
.map(1 → 1 + 3)...(5 → 5 + 7)

Потом после фильтрации по делению на 3 без остатка в стриме остаются числа 6 и 12. И при помощи операции reduce() находим сумму этих чисел.

Теги:
Всего голосов 9: ↑4 и ↓5+2
Комментарии0

Хорошо ли вы разбираетесь в Python?

В Академии Selectel есть небольшой тест на владение синтаксисом Python. Он позволит оценить свои знания и отыскать пробелы. Вопросы подобраны для тех, кто уже не пугается None, но продолжает разбираться, что происходит «под капотом». Бонусом — подборка полезных материалов для изучения Python!

Пройти тест →

Теги:
Всего голосов 8: ↑5 и ↓3+2
Комментарии0

Задача о поиске флага на видеосервере

Эта задача для тех, кто любит сложности и не боится искать верное решение, перебирая разные подходы. И особенно полезна тем, кто готовится к CTF-турнирам. Мы подготовили ее по следам соревнования Selectel для специалистов по информационной безопасности.

Условие
На видеосервере находятся очень ценные изображения, но для их просмотра необходимо пройти авторизацию! А для этого вам понадобится флаг — строка в формате slcctf{}.

Задача
Найдите флаг. Чтобы выполнить задание, перейдите на страницу http://watcher.slcctf.fun/.

Предлагайте свое решение в комментариях или подсмотрите его в Академии Selectel.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Задача о Тирексе, который строил сеть наугад

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

Условие

Тирекс построил собственный дата-центр и теперь хочет объединить 15 серверов в одну сеть. Он не задумывается о надежности топологии, поэтому хочет использовать минимально возможное количество кабелей — 14. 

Схема дата-центра Тирекса.
Схема дата-центра Тирекса.

Задача

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

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

Предлагайте свое решение в комментариях. А правильный ответ можно подсмотреть в Академии Selectel.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии2

Подводя промежуточные итоги

Ареопаг челленджа имени Винтика и Шпунтика в лице @qbertych и вашего покорного, посовещавшись, принял решение выплатить @ripatti половину призового фонда конкурса (25000р). Артем опубликовал две замечательные статьи:

Винтик и Шпунтик, часть 1: формула включений-исключений

Винтик и Шпунтик, часть 2: гиперкубы, шляпы и фартуки

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

Теги:
Всего голосов 11: ↑11 и ↓0+16
Комментарии0

Вклад авторов