Съдържание
На недавнем тимбилдинге было "бинго" для знакомств с коллегами. "Бинго" это листок с 24 ячейками, в которых написаны утверждения о людях, например: "Попадал в телевизор", "Любит экзотическую еду" и так далее. Задачей было заполнить все ячейки фамилиями коллег без повторений. Я один из двух людей (среди ~300), кому это удалось, хочу поделиться алгоритмом. Вообще, знание игровых механик и алгоритмическое мышление могут пригодиться вам в самых неожиданных ситуациях. Во-первых, я взял несколько разных листов с "бинго". Всего было 5-6 версий с немного разными ячейками, логично было пытаться заполнять тот, где меньше редких утверждений, под которые сложно найти человека. Во-вторых, и это основное, половина листа заполнилась после рассадки за столы. Я предложил соседям по столу такой подход: 1. Каждому присваивается число 2. Все листы с бинго собираем в стопку и передаём стопку от одного края стола до другого по часовой стрелке 3. Когда к тебе попали листы, ты на каждом, кроме своих, ставишь свой номер в углу тех ячеек, которые содержат верные для тебя утверждения 4. Когда стопку все заполнили, возвращаем каждому его листы 5. Получив лист, ты выбираешь в нём ячейки с самым маленьким ненулевым количеством номеров в них (обычно это один номер) и вносишь в одну из них фамилию вместо номера 6. Номер внесённого человека зачёркивается во всех ячейках этого листа 7. Пункты 5 и 6 повторяются, пока незачёркнутых номеров не осталось Быстро выяснилось, что вообще все варианты листов без проблем заполняются на N-1 ячеек, где N — количество людей за столом (потому что себя вносить нельзя). Оставалось только дозаполнить остатки, половина из которых опять же закрывалась теми коллегами, кого я знаю, потому что столы были сформированы так, чтобы вы с меньшей вероятностью сели со своими прямыми знакомыми. Профит. Я принёс листок сдавать, но выяснилось, что чуть раньше полностью готовое бинго сдал мой коллега Дмитрий, который, представляете, ходил и общался с людьми ради этого. Вот прямо разговаривал! Ужас какой. #life