شبه العشوائية

أهداف التمرين:

  1. التعرف على إمكانات مكتبة العشوائية
  2. ممارسة قراءة صفحات مراجع المكتبات البرمجية الأصلية
  3. ممارسة تركيب إجراء من أنواع مختلفة: الرقم والنص والتسلسل ونحو ذلك
  4. التعرف على حقيقة شبه العشوائية (Pseudo-randomness) في الحواسيب

مكتبة العشوائية random هي من ضمن المكتبات المبنية في لغة بايثون.

import random

بينما تحل المسائل التالية، ستحتاج إلى البحث في صفحة المكتبة. جرب أن تضع في محرك البحث العبارة:

python 3 docs random

وستظهر في النتائج الأولى صفحة المكتبة في مراجع بايثون:

صفحة مكتبة العشوائية

ولا أريد منك قراءة الصفحة كاملةً، ولذلك سأشير إلى بعض الأجزاء المهمة بالنسبة لنا الآن:

  1. الإجراء: random.seed الذي تجده تحت قسم: Bookkeeping functions بالنظر في قائمة المحتويات في الجانب الأيسر من الصفحة
  2. القسم: Functions for integers
  3. القسم: Functions for sequences
  4. القسم: Notes on Reproducibility
  5. الأمثلة: Examples

المسألة الأولى: توليد كلمة مرور

اكتب إجراءً يقبل المعاملات التالية ليُنتِج كلمة مرور (Password):

  • الطول
  • الأحرف الصغيرة
  • الأحرف الكبيرة
  • الأرقام
  • الحد الأدنى من الأرقام
  • الرموز: !@#$%^&*
  • الحد الأدنى من الرموز
def generate_password(length: int, ...) -> str:
    ...

المسألة الثانية: توليد عبارة مرور

اكتب إجراءً آخر يقبل المعاملات التالية ليُنتِج عبارة مرور (Passphrase)، بحيث تكون سهلة الحفظ على البشر:

  • عدد الكلمات
  • فاصل الكلمات
  • تكبير الحرف الأول من كل كلمة
  • تضمين رقم
def ...