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

StackOverflow https://stackoverflow.com/questions/268682

Вопрос

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

Из-за логистики и планов поездок в этом году мы празднуем Рождество рано (всего через две недели после Дня благодарения).

Чтобы у нас было достаточно времени на поиск подарков, мы хотели бы выбрать названия прямо сейчас.Наша семья находится на другом конце США.Некоторые участники имеют доступ к Интернету, а некоторые нет (напримермоя дорогая бабушка).

Что я хотел бы сделать, так это иметь честный протокол, который имитирует вытягивание имен из шляпы и обеспечивает некоторый уровень секретности, не будучи чрезмерно сложным.Некоторые веб-сайты, такие как первый drawnames.com или другие подобные им обычно требуют, чтобы люди указывали свой адрес электронной почты.Я хочу быть абсолютно уверен, что адреса электронной почты моей семьи не будут подвергнуты злоупотреблению поэтому я не хочу доверять их другому сайту.

Лучший протокол, который я могу придумать, это:

  1. Напишите программу, которая случайным образом выбирает людей и гарантирует, что люди не получат своего супруга.
  2. Программа покажет мне половину списка, но не покажет мне, кто получил мое имя, но покажет мне, чье имя у меня есть, и человека, который получил имя моей жены.
  3. Затем я выйду из комнаты, и программа покажет вторую половину списка людей моей жене (в который войдет и тот, у кого есть мое имя).
  4. Затем мы с женой свяжемся с каждым человеком и расскажем им, кто у них есть.

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

Это было полезно?

Решение

В OS X очень легко воспользоваться механизмом преобразования текста в речь, просто вызвав " скажем " утилита командной строки. Есть также способы сделать это в Windows.

ПОЭТОМУ вы можете позвонить любому, кто находится в вашем списке, попросить его выслушать, для кого он должен купить подарок, и подключить наушники к компьютеру к телефону, как вы скажете своей программе сказать имя, связанное с человек, которому вы звоните. Затем они могут сказать вам, слышали ли они это ясно и что это не их супруг.

Другие советы

Возьмите немного бумаги и несколько конвертов. Номер два в каждом конверте и два в каждой бумаге, чтобы у вас было 2 "1" конверты и 2 "1"; документы, 2 "2" конверты и 2 "2" документы и т. д.

Пусть вы или ваша жена напишите имена каждой пары на соответствующих документах, например: вы можете указать свое имя на " 1 " простыня и ваша жена должна была бы быть на другом "1" простынь. Адресуйте соответствующий конверт соответствующим образом (ваш адрес будет в обоих «1» конвертах в примере).

Переверните все бумаги и конверты, чтобы не было видно ни одного имени или адреса (вы не забыли написать цифры на обратной стороне бумаги и конвертов, верно?) помещает так, чтобы человек, который не делал записи, запечатывал конверты. Обязательно поместите каждую пронумерованную бумагу в конверт с другим номером (например, никогда не кладите «1» бумагу в «1» конверт). Таким образом, вы будете знать, что A) никто не получил себя и B) никто не получил их значимого другого.

Не каждый ответ должен включать компьютер! Просто спросите ближайшего игрока D & D. :-P

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

Ну, должен быть элемент доверия, так как вы можете легко обмануть, но если вы хотите просто избежать случайного просмотра подарочных назначений, как насчет назначения больших случайных чисел каждому, создайте список для каждого из людей и их кодовые номера, и напечатайте отдельные листы для каждого человека с кодом человека, которого они "рисуют". Таким образом, без необходимости запоминания номера и поиска его в списке, вы, вероятно, интерпретируете, что «Бобу присвоено значение 0785286741234». как "Боб был назначен на Келли". Вероятно, я бы сделал первые и последние несколько цифр одинаковыми для всех, так что вы не можете просто вспомнить, что Боб получил 7 с чем-то, и была только одна случайная запись, начинающаяся с 7. Скопайте различия глубже в числовую строку. Посмотрите, как они "потеряли" визуально:

0785253451234 Боб

0785286741234 Келли

0785238761234 Герман

0785200281234 Лидия

Это программное решение.

<Ол>
  • Поместите имя и адрес каждого в список.
  • Сделайте копию списка, затем перемешайте его.
  • Если какой-либо адрес в исходном списке имеет совпадающий адрес в перетасованном списке, либо перетасуйте его еще раз, либо произведите произвольную перестановку, пока ни один из слотов не будет иметь одинаковый адрес в обоих списках. (Делайте это в программном обеспечении, чтобы не заглядывать.)
  • Печать конвертов в порядке первого списка.
  • Печатайте буквы в порядке перетасованного списка.
  • Заполните конверты, не заглядывая.

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

    Счастливых праздников.

  • Почему бы автоматически не отправить всем электронное письмо? Вы можете поместить имя в файл и прикрепить его как вложение, чтобы не смотреть в глаза.

    Вы могли бы, чтобы ваш компьютер набирал каждого человека через модем и использовал преобразование текста в речь, чтобы объявить его имя в строке после ответа. Это похоже на программы автоматического дозвона, которые используют политические кандидаты и рекламодатели, чтобы воспроизвести вам сообщение. В качестве альтернативы вы можете настроить его так, чтобы ваша семья звонила на ваш номер, а компьютер отвечал. Затем они нажимают кнопки телефона, чтобы написать их имя, а компьютер сообщает им, кого они нарисовали.

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

    Существует программное обеспечение с открытым исходным кодом, которое может работать на Linux, хотя я никогда не использовал его. Я предполагаю, что есть эквивалент Windows с открытым исходным кодом.

    Я предполагаю, что вся ваша семья имеет доступ к телефону, даже если у них нет электронной почты.

    Используйте соседа:

    Подготовьте N конвертов с именами на них.

    Подготовьте N именных листов, которые включают имена супругов, например,

      

    "Боб (супруга Молвы)"

    Затем выйдите из комнаты и попросите соседа сделать случайное сопоставление. Presto. Раздайте конверты лицам лично или по почте США

    С Рождеством Христовым

    Простое решение:

    • Напишите каждое имя на карточке и закройте ее.
    • Для каждой пары положите одну в стопку A, а другую - в стопку B.
    • Разделите синглы на A и B.(Вы должны знать, кто в каком стеке находится).
    • Назначьте заметки из стека B кому-то из стека A, и наоборот.
    • Если выпало нечетное число, отделите один из одиночных (блайндов) и назначьте его другому.(Есть небольшая вероятность, что человек получит сам), но вы можете противостоять этому, взяв карточку самостоятельно и поменяв ее на другую, если это вы.

    Когда мы обменялись подарками в этом году, я предложил http://www.secretsanta.com . Моя сестра отвечала, и у нее не было подключения к интернету, поэтому она не использовалась.

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top