UTILS.
100% trong trình duyệt
🎅

Trình tạo Secret Santa

Phân cặp tặng quà Secret Santa ngẫu nhiên sao cho ai cũng tặng và nhận một lần, với các cặp loại trừ tùy chọn. Chạy hoàn toàn offline trong trình duyệt của bạn.

Công cụ tổ chức một thiết bị — nó tiết lộ toàn bộ danh sách, nên hãy chạy riêng tư.
— kết quả hiển thị ở đây —

Về công cụ này

Trình tạo Secret Santa ghép cặp ngẫu nhiên một nhóm cho một buổi trao đổi quà sao cho ai cũng tặng đúng một món quà và nhận đúng một món — và không ai bốc trúng tên mình. Dán mỗi tên một dòng, thêm bất kỳ cặp loại trừ nào bạn cần (ví dụ, để một cặp đôi không được ghép với nhau), và nhấn Phân công.

Bên trong nó dựng nên một derangement hợp lệ bằng phân công vòng: các tên được xáo trộn bằng phép xáo Fisher-Yates dựa trên trình sinh ngẫu nhiên mật mã của trình duyệt (crypto.getRandomValues), rồi mỗi người theo thứ tự đã xáo tặng cho người kế tiếp quanh vòng, với người cuối tặng cho người đầu. Một vòng đơn đảm bảo không có tự trùng và ai cũng vừa tặng vừa nhận một lần. Để tôn trọng các loại trừ, công cụ xáo lại tới vài nghìn lần cho đến khi tìm được một sắp xếp không phá vỡ quy tắc nào; nếu ràng buộc của bạn không thể thỏa mãn, nó báo cho bạn thay vì trả về một danh sách tồi.

Đây là công cụ một thiết bị cho người tổ chức — nó hiển thị toàn bộ danh sách người-tặng-cho-người-nhận trên màn hình, nên hãy chạy riêng tư. Mọi thứ diễn ra cục bộ trong trình duyệt của bạn: không có gì được tải lên và nó hoạt động offline. Nhập các loại trừ dưới dạng hai tên mỗi dòng cách nhau bằng dấu phẩy, dấu hai chấm hoặc dấu gạch ngang (ví dụ, "Alex, Jordan").

Câu hỏi thường gặp

Có ai bị phân công tặng quà cho chính mình không?
Không bao giờ. Phân công là một derangement vòng đơn, về mặt toán học đảm bảo không ai bị ghép với chính mình và ai cũng tặng một lần và nhận một lần.
Làm sao để ngăn một cặp đôi bị ghép với nhau?
Thêm một dòng loại trừ với cả hai tên cách nhau bằng dấu phẩy, dấu hai chấm hoặc dấu gạch ngang, vd. "Alex, Jordan". Loại trừ có tính hai chiều, nên không ai trong hai người có thể bốc trúng người kia. Thêm bao nhiêu dòng loại trừ tùy nhu cầu.
Nếu các loại trừ của tôi không thể thỏa mãn thì sao?
Công cụ xáo lại tới vài nghìn lần để tìm một sắp xếp hợp lệ. Nếu không có phân công nào tôn trọng được mọi loại trừ (ví dụ, quá nhiều quy tắc chồng chéo), nó báo rằng ràng buộc là bất khả thi thay vì trả về một danh sách không hợp lệ.
Lần bốc có riêng tư không, và nó có chạy offline không?
Đây là công cụ người tổ chức hiển thị toàn bộ danh sách trên một màn hình, nên hãy chạy nơi người chơi không thể thấy. Nó chạy hoàn toàn trong trình duyệt của bạn với trình sinh ngẫu nhiên crypto cục bộ — không có gì được tải lên và nó hoạt động offline.

Công cụ khác