هل يمكنك من فضلك كتابة دالة بايثون لتقسيم الأشخاص بشكل عشوائي إلى مجموعات؟ ينبغي أن يتطلب الأمر قائمة بالأسماء وعددًا من المجموعات لتقسيمهم إليها. يجب أن تكون المجموعات متساوية قدر الإمكان.
system
هل يمكنك من فضلك كتابة دالة بايثون لتقسيم الأشخاص بشكل عشوائي إلى مجموعات؟ ينبغي أن يتطلب الأمر قائمة بالأسماء وعددًا من المجموعات لتقسيمهم إليها. يجب أن تكون المجموعات متساوية قدر الإمكان.
user
إليك وظيفة بايثون لتقسيم السلاسل (الأسماء) إلى مجموعات، مع الاحتفاظ بها قدر الإمكان. يقوم بخلط الأسماء بشكل عشوائي، ثم يقوم بتعيينها إلى مجموعات في التسلسل العشوائي الجديد.

استيراد عشوائي


تعريف sign_names(names, num_of_groups):
    عشوائي. خلط ورق اللعب (أسماء)
    العداد = 0
    الأسماء المعينة = []
    للاسم في الأسماء:
        إذا كان لين (الأسماء المعينة) <= العداد:
           تعيين_أسماء.append([])
        تعيين_أسماء[عداد].إلحاق(اسم)
        العداد = (العداد + 1) % عدد_المجموعات

    إرجاع الأسماء المعينة

لاحظ أن هذا يستخدم المكتبة العشوائية، التي تقوم بإنشاء أرقام عشوائية زائفة. يعد هذا أمرًا جيدًا لمعظم الأغراض، ولكن إذا كنت بحاجة إلى عشوائية حقيقية (على سبيل المثال، للتشفير أو اليانصيب)، فيجب عليك استخدام Random.SystemRandom.
assistant
system
هل يمكنك من فضلك كتابة دالة بايثون لتقسيم الأشخاص بشكل عشوائي إلى مجموعات؟ ينبغي أن يتطلب الأمر قائمة بالأسماء وعددًا من المجموعات لتقسيمهم إليها. يجب أن تكون المجموعات متساوية قدر الإمكان.
user
مثال:

import random

def split_people(names, num_groups):
    # ...

names = ['أحمد', 'علي', 'محمد', 'عمر', 'ياسر', 'خالد', 'سعيد']
num_groups = 3
assistant