مقسّم الفرق العشوائي (منشئ المجموعات)

الصق قائمة الأسماء وقسّمها إلى فرق عشوائية عادلة — حسب عدد الفرق أو حجم الفريق، بخلط تشفيري ونسخ بنقرة واحدة.

1,256 مشاهدة

كيف يعمل الخلط فعليًا

تقسيم قائمة بعدل يتلخص في سؤال واحد: هل كل ترتيب ممكن للأشخاص متساوٍ في الاحتمال؟ تستخدم هذه الأداة خوارزمية خلط فيشر-ييتس (Fisher-Yates)، وهي خوارزمية ذات تاريخ طويل بشكل مفاجئ — وصفها لأول مرة عام 1938 الإحصائيان رونالد فيشر وفرانك ييتس كإجراء يدوي بالورقة والقلم لعشوائية صفوف الجداول الإحصائية. في عام 1964، حوّلها ريتشارد دورستنفيلد إلى النسخة الفعالة المناسبة للحواسيب المستخدمة اليوم، والتي تعمل بزمن خطي عبر المرور على القائمة مرة واحدة وتبديل كل عنصر بعنصر آخر يُختار عشوائيًا من الجزء المتبقي غير المخلوط بعد. عمّم دونالد كنوث لاحقًا هذه النسخة في كتابه "The Art of Computer Programming"، ولهذا تُعرف أحيانًا أيضًا باسم خلط كنوث.

تأتي العشوائية نفسها من crypto.getRandomValues، مصدر الأرقام العشوائية الآمن تشفيريًا في المتصفح — نفس المصدر المستخدم في أداة سحب القرعة لدينا — بدلاً من Math.random الأسرع لكنه غير مصمم لمقاومة التنبؤ. الدقة في التنفيذ مهمة هنا أيضًا: الخلط الساذج، مثل اختيار موضع تبديل عشوائي من القائمة كاملة في كل خطوة بدلاً من الجزء المتبقي غير المخلوط فقط، يُدخل تحيزًا إحصائيًا بصمت. تصبح بعض الترتيبات النهائية أكثر احتمالًا من غيرها — تأثير خفي يشبه في جوهره مفارقة عيد الميلاد، حيث تعمل الاحتمالات الحقيقية بشكل مختلف عمّا يوحي به الحدس. خلط فيشر-ييتس المنفَّذ بشكل صحيح يتجنب هذا: في كل خطوة يختار بشكل متساوٍ فقط من بين العناصر التي لم تُوضع بعد، وهذا ما يجعل كل ترتيب ممكن متساوي الاحتمال.

ما يجب أن تعرفه

تقسيم الأشخاص إلى مجموعات لا تنقسم بالتساوي قرار تصميم منفصل عن الخلط نفسه. عندما لا يمكن تقسيم قائمة إلى فرق متساوية تمامًا، يُوزَّع الباقي بشخص إضافي واحد لكل فريق، بدءًا من الفريق الأول، بدلاً من تكديس كل الأشخاص الزائدين في فريق واحد — وهذه أعدل طريقة لحل باقٍ ليس له إجابة متساوية تمامًا.

  • اختر التقسيم حسب عدد مستهدف من الفرق أو حسب حجم مستهدف للفريق — أيهما أهم فعليًا لموقفك.
  • إعادة التقسيم تُشغّل الخلط من جديد بعشوائية جديدة تمامًا، منتجةً ترتيبًا مختلفًا حقًا لا مجرد إعادة ترتيب للسابق.
  • تُخلط الأسماء بالكامل داخل المتصفح؛ لا يُرسل شيء إلى أي مكان، وهو ما يجعلها مناسبة أيضًا لقوائم الصفوف الدراسية أو تشكيلات الفرق السرّية.

الأسئلة الشائعة

ماذا يحدث إذا لم تنقسم القائمة بالتساوي؟

يُوزَّع الباقي بشخص إضافي واحد لكل فريق بدءًا من الفريق 1 — مع 11 شخصًا في 3 فرق تحصل على 4-4-3، وليس أبدًا 5-3-3.

هل التقسيم عشوائي حقًا؟

نعم — خلط Fisher-Yates غير متحيز مدفوع بـ crypto.getRandomValues، المصدر التشفيري للمتصفح. إعادة التقسيم تنتج ترتيبًا جديدًا حقًا في كل مرة.

هل يمكنني إبقاء شخصين منفصلين أو معًا؟

ليس تلقائيًا — قسّم القائمة، ثم بدّل بين شخصين يدويًا عند الحاجة. التقسيم بشروط مخصصة موجود في قائمة أفكارنا المستقبلية.

من أين جاء خلط فيشر-ييتس؟

وصفه لأول مرة عام 1938 رونالد فيشر وفرانك ييتس كإجراء يدوي للخلط في الإحصاء. حوّله ريتشارد دورستنفيلد عام 1964 إلى الخوارزمية الحاسوبية الفعالة المستخدمة اليوم، وعمّمه لاحقًا دونالد كنوث — ولهذا يُعرف أيضًا باسم خلط كنوث.

لماذا لا تُستخدم طريقة خلط عشوائية أبسط؟

الأساليب الساذجة، مثل تبديل كل عنصر بموضع يُختار من القائمة كاملة بدلاً من الجزء المتبقي غير المخلوط فقط، تُفضّل بصمت بعض الترتيبات النهائية على غيرها. خلط فيشر-ييتس المنفَّذ بشكل صحيح يختار كل تبديل فقط من بين العناصر التي لم تُوضع بعد، وهذا ما يجعل كل ترتيب ممكن متساوي الاحتمال.

التعليقات

لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!

أدوات مشابهة