Hediye çekilişleri öngörülebilir biçimlerde başarısız olur. En yaygın ikisi aynıdır: birileri kendi adını çeker ve birileri geçen yıl zaten hediye aldığı kişiyi çeker.
İkisi de çözülebilir ve ikincisi ancak aracı önceden bilgilendirirseniz çözülebilir hale gelir.
Eşleştirme Ne Yapar
Hediye Çekilişi oluşturucu herkesi tam olarak bir başka kişiyle eşleştirir. Eşleştirme rastgeledir ve iki kısıtlama otomatik olarak uygulanır:

Kimse kendi adını çekmez. Bu matematiksel bir özelliktir; sabit noktası olmayan bir permütasyona derangement denir ve bunu oluşturmanın birden fazla yolu vardır; araç da bunu yapar.
Hariç tuttuklarınıza saygı gösterilir. Oluşturmadan önce gerçekleşmemesi gereken çiftleri işaretleyebilirsiniz: birlikte yaşayan kişiler, bir yönetici ve doğrudan bağlı çalışanı, garip karşılayacak iki kişi. Oluşturucu, hepsini karşılayan bir eşleştirme üretene kadar yeniden dener.
Geri kalan her şey şanstır. Mesele de bu.
Kurulum
Herkesi listeleyin, her satıra bir kişi. Tam adları kullanın; “Alex” yerine “Alex Chen”, çünkü araç iki Alex’i ayırt edemez ve yinelenen bir eşleştirmeyi kimse istemez.
Hariç tutmaları ekleyin. İnsanların atladığı adım budur ve sonucun kullanılabilir olup olmadığını belirleyen de budur. Yaygın olanlar: partnerler ve eşler, aile üyeleri, her zaman birbirine aynı hediyeleri alan iki kişi, değerlendirme yaptığı biriyle eşleşen bir yönetici.
Bir bütçe belirliyorsanız onu ayarlayın. Bütçe, sonuçlarda ve kopyalanan mesajlarda gösterilir; eşleştirmeyi etkilemez, ki etkilemesini bekliyorsanız bunu bilmeye değer.
Oluşturun. Araç her hariç tutmayı karşılayamadığını bildirdiğinde, bu yeniden denenecek bir hata değil gerçek bir sinyaldir. Genellikle kısıtlamaların birini köşeye sıkıştırdığı anlamına gelir; birinin diğer herkesi hariç tutup tutmadığını kontrol edin, çünkü bu geçerli herhangi bir eşleştirmeyi imkânsız kılar.
İnsanlara Bildirme
Kopyala fişi bir kişi için alıcıyı ve bütçeyi içeren kısa bir mesaj üretir. Tümünü kopyala tam listeyi üretir.
Bu, tüm işin garip kısmıdır: birinin sonuçları dağıtması gerekir ve o kişi her eşleştirmeyi görebilir. Araçta kişi başına özel bir bağlantı yoktur.
Herkes birbirini tanıyorsa ve eğlence sonrasındaki gizlilikteyse bu sorun değildir. Amaç bir yöneticinin kimin kimi çektiğini bilmemesiyse bu bir sorundur; bu durumda herkese özel mesaj gönderin veya çekilişi kimin yürüttüğünü açıklamadan yapın.
Eşleştirmelerin nihai olduğunu söyleyin. Baştan belirtilecek en önemli tek şey budur, çünkü biri eşleştirmesini beğenmediği anda yeniden çalıştırma dürtüsü karşı konulmaz olur. Yeniden çalıştırmak, adil bir prosedürü tercih edilen bir sonucu aramaya dönüştürür ve herkes bunun olduğunu görebilir.
İşe Yaramasını Sağlayan Uygulamalar
Hariç tutmaları önce yapın. Kimin eşleştirilemeyeceği üzerine on dakikalık bir konuşma, aralık ayında bir tartışmayı önler.
Oluşturmadan önce kuralları duyurun. Nihailik, bütçe, satın alma için son tarih ve çekilişin tarihi.
Gerçek bir son tarih verin. İnsanlar son dakikada kötü hediye alır. İki hafta olağan yanıttır ve belirtilen bir tarih, çekilişin kaymadan o gün gerçekleşmesini sağlar.
Sonrasında gizli tutun. Her şey kimse bilmediği için işler. Eşleştirme o gün herkese açık duyurulursa heyecan kaybolur ve kimse bu konuda gerilmez.
Rastgeleliğin Yanlış Seçim Olduğu Durumlar
İlişkilerin ağırlığı olduğunda. Hepsi birbiriyle iyi geçinmeyen kişiler arasındaki bir aile hediye çekilişine rastgelelik yardımcı olmaz. Önemli olan bir eşleştirme üzerindeki kontrolünüzü elinizden alır.
Belirli birini ödüllendirmek veya teşekkür etmek istediğinizde. Bir çekiliş yönlendirilemez ve onu yönlendirmek istediğinizi fark ediyorsanız, aslında elle bir eşleştirme istiyorsunuz demektir.
Elle iyi eşleştirebileceğiniz küçük gruplar için. Dört kişiyle herkes, kaçınmak istediğiniz dahil, olası her eşleştirmeyi görebilir. Araç, yazmanızın alacağı üç saniyeyi kazandırır.
Hariç tutmaların karşılanması imkânsız olduğunda. İki kişinin birbirini hariç tuttuğu üç kişilik bir grubun geçerli bir yanıtı yoktur. Araç bunu size söyler; yanıt, kısıtlamayı yeniden gözden geçirmektir, sürekli yeniden denemek değil.
Rastgelelik Üzerine Bir Not
Eşleştirme, deterministik olan ve ilke olarak sonuçları öngörmek üzere yeniden oluşturulabilen Math.random() yerine tarayıcının kriptografik rastgele kaynağını kullanır. Kısıtlamaların geçerli olduğu yerlerde oluşturucu, geçerli bir düzen bulana kadar karıştırır ve yeniden dener; sınırlı sayıda denemeye kadar, sonrasında hariç tutmalarınızı ihlal eden bir şey döndürmek yerine başarısızlık bildirir.
Adalet Denetimi sayfası mekanizmayı ele alır.
Bu yeniden deneme davranışını bilmeye değer: eşleştirme, tüm geçerli düzenlemelerden tek bir tekdüze çekiliş değildir, çünkü yeniden denemek kolay karşılanan düzenlemeleri kayırır. Bir hediye çekilişi için bu önemsizdir; kimse düzenlemeler arasında ayrım yapamaz. Ödülün söz konusu olduğu bir çekiliş için önemli olurdu; burada adil yaklaşım, geçerli kümeden tek bir çekiliştir.
Bir Çekiliş Yürütmek
Hariç tutmaları yazın, oluşturun ve fişleri hemen ayrı mesajlara kopyalayın. Sonra kimse yanıt vermeden önce yüksek sesle “nihai” deyin.
Hazır mısınız? Hediye Çekilişi oluşturucuyu açın ve listenizi yapıştırın.