مولد الأعداد العشوائية بايثون
تعلم كيفية توليد أرقام عشوائية بلغة بايثون باستخدام أمثلة أكواد تفاعلية. نفذ الكود مباشرة وشاهد نتائج فورية باستخدام وحدات عشوائية، وأسرارية، ووحدات رقمية.
هل تحتاج إلى رقم عشوائي سريع؟
جرب مولد الأرقام العشوائية عبر الإنترنت للحصول على نتائج فورية دون الحاجة لكتابة أي شيفرة.
محرر شيفرة بايثون
تعلم كيفية توليد أرقام عشوائية بلغة بايثون باستخدام أمثلة أكواد تفاعلية. نفذ الكود مباشرة وشاهد نتائج فورية باستخدام وحدات عشوائية، وأسرارية، ووحدات رقمية.
import random
# Generate random integers between min and max
min_val = 1
max_val = 100
quantity = 5
# Generate multiple random numbers
numbers = [random.randint(min_val, max_val) for _ in range(quantity)]
print(f"Random numbers: {numbers}")
الإنتاج
Pyodide (من بايثون إلى WebAssembly)
تشغيل الكود...
تحميل بيئة بايثون...
الأعداد الصحيحة العشوائية الأساسية
استخدم random.randint() لتوليد أعداد صحيحة عشوائية في نطاق محدد. هذه هي الطريقة الأكثر شيوعا لتوليد الأرقام العشوائية لأغراض عامة.
فهم توليد الأعداد العشوائية بلغة بايثون
توفر بايثون عدة طرق لتوليد أرقام عشوائية، كل منها مناسب لحالات استخدام مختلفة. تستخدم الوحدة العشوائية توليد أرقام شبه عشوائية (PRNG) بناء على خوارزمية Mersenne Twister، بينما توفر وحدة الأسرار أرقاما عشوائية آمنة تشفيريا مناسبة لتوليد كلمات المرور ورموز الأمان.
random
توفر الوحدة العشوائية توليد أرقام زائفة عشوائية سريعة مناسبة للمحاكاة والألعاب ومهام البرمجة العامة.
secrets
تستخدم وحدة الأسرار os.urandom() لإنشاء أرقام عشوائية آمنة تشفيريا، وهي مثالية لتوليد كلمات المرور، ورموز الأمان، وأنظمة المصادقة.
numpy
توفر وحدة NumPy العشوائية توليد أرقام عشوائية فعالة تعتمد على المصفوف، مثالية للحوسبة العلمية، وتحليل البيانات، والمحاكاة واسعة النطاق.
حالات الاستخدام الشائعة
الألعاب والمحاكاة
توليد رميات نرد عشوائية، سحب بطاقات، غنائم، وأحداث لعبة باستخدام random.randint() أو random.choice().
الأمن والتشفير
أنشئ كلمات مرور آمنة، ومفاتيح واجهات برمجة التطبيقات (API)، ورموز الجلسة، وأملاح التشفير باستخدام وحدة الأسرار.
علم البيانات والإحصاء
توليد مجموعات بيانات عشوائية للاختبار، وأخذ العينات الإحصائية، ومحاكاة مونتي كارلو باستخدام numpy.random().
اختبار البرمجيات
أنشئ بيانات اختبار عشوائية وحالات حديمة لضمان تغطية قوية للشيفرة واكتشاف الأخطاء.
كيف يعمل توليد الأعداد العشوائية بلغة بايثون
تستخدم وحدة بايثون
وحدة secrets، التي تم تقديمها في بايثون 3.6، تستخدم os.urandom() للوصول إلى مصدر العشوائية التشفيرية في نظام التشغيل. وهذا يوفر عشوائية حقيقية مناسبة للتطبيقات الحساسة للأمن.
ملاحظة: يتم تنفيذ جميع الكود في متصفحك باستخدام Pyodide (مترجم بايثون إلى WebAssembly). لا يتم إرسال أي كود أو بيانات إلى خوادمنا، مما يضمن الخصوصية والأمان الكاملين.
نصائح خبراء لتوليد بايثون العشوائي
قابلية التكرار باستخدام البذور
استخدم random.seed(42) لتعيين قيمة seed للنتائج القابلة للتكرار. ضروري للتصحيح والتجارب العلمية.
أفضل الممارسات الأمنية
استخدم دائما وحدة secrets لتوليد كلمات المرور، ومفاتيح API، ورموز الأمان. لا تستخدم أبدا random لأغراض التشفير.
الأداء مع نومباي
لتوليد مصفوفات كبيرة من الأعداد العشوائية، يكون NumPy أسرع بكثير من الفهم القوائم مع الوحدة العشوائية.
المواصفات الفنية
الخوارزميات
- ميرسين تويستر (وحدة عشوائية)
- os.urandom() (وحدة الأسرار)
- NumPy Mersenne Twister (تنفيذ C)
الأداء
- عشوائي: ~1M أرقام/ثانية
- الأسرار: ~100 ألف رقم في الثانية (أبطأ بسبب استدعاءات نظام التشغيل)
- عدد العدد: ~10M+ أعداد/ثانية (مجهول)
أفضل حالات الاستخدام
- random: ألعاب، محاكاة، برمجة عامة
- secrets: كلمات مرور، رموز، تشفير
- numpy: علم بيانات، محاكاة واسعة النطاق
الأسئلة المتداولة
ما هي وحدات بايثون التي يغطيها المحتوى؟
وحدة random المدمجة، ووحدة secrets لأعمال الأمان، ووحدة numpy للتوليد الملائم للمصفوفات.
هل يمكنني تشغيل الأمثلة الموجودة على الصفحة؟
نعم. تقوم الصفحة بتحميل بيئة تشغيل بايثون داخل المتصفح، بحيث يمكنك تعديل كل مقطع كود وتشغيله ورؤية نتيجة حقيقية.
ما الوحدة التي ينبغي أن أستخدمها لإنشاء الرموز أو كلمات المرور؟
استخدم وحدة secrets. وحدة random مناسبة للمحاكاة والألعاب، لكنها ليست آمنة تشفيرياً.
هل يتم تشغيل الكود الخاص بي على خادم؟
لا. يتم التنفيذ داخل بيئة المتصفح، لذلك لا يتم رفع أي شيء تكتبه إلى أي مكان.
كيف أُنشئ عدداً صحيحاً عشوائياً بين 1 و10 في بايثون؟
استخدم random.randint(1, 10) التي تُرجع عدداً صحيحاً من 1 إلى 10 شاملاً الطرفين مع احتسابهما. للحصول على عدد عشري في النطاق نفسه، استدعِ random.uniform(1, 10). يمكنك تعديل هذا الكود وتنفيذه كما هو في الأمثلة التفاعلية على هذه الصفحة.
هل الأرقام العشوائية في بايثون عشوائية حقاً؟
لا. تستخدم وحدة random مولّد Mersenne Twister شبه العشوائي بدقة فاصلة عائمة 53 بت، لذا فإن النتائج حتمية وغير مناسبة لأغراض التشفير. للقيم الحساسة أمنياً مثل كلمات المرور أو الرموز أو المفاتيح، استخدم وحدة secrets التي تسحب العشوائية من مصدر العشوائية الآمن تشفيرياً في نظام التشغيل.
كيف أحصل على الأرقام العشوائية نفسها في كل مرة أشغّل فيها الكود؟
استدعِ random.seed(42) أو أي عدد صحيح ثابت قبل توليد القيم. يُهيئ تحديد البذرة (seed) مولّد Mersenne Twister إلى حالة قابلة لإعادة الإنتاج، بحيث تُرجع الدوال randint وrandom وshuffle وchoice تسلسلات متطابقة في كل تشغيل. هذا ضروري للاختبار وتصحيح الأخطاء وإعادة إنتاج تجارب التعلم الآلي أو المحاكاة.
هل تستطيع numpy توليد أرقام عشوائية أسرع من وحدة random؟
نعم، وبسرعة أكبر بكثير. استدعاء واحد مثل np.random.randint(1, 101, size=1000000) يولد مليون عدد صحيح في عملية متجهة واحدة، متجنباً حلقة بايثون البطيئة التي تتطلبها randint لكل قيمة على حدة. استخدم numpy عندما تحتاج إلى آلاف أو ملايين القيم العشوائية للمحاكاة أو أخذ العينات أو التحليل الإحصائي.
لماذا تتعلم إنشاء الأرقام العشوائية في Python؟
طرق متعددة الاستخدامات
- وحدات متعددة لاحتياجات مختلفة
- من الألعاب البسيطة إلى التشفير
- سهل التعلم، قوي في الممارسة
تطبيقات عملية
- يُستخدم في علم البيانات والتعلم الآلي
- أساسي للاختبار وضمان الجودة
- حرج لتطبيقات الأمان
معيار الصناعة
- مستخدم على نطاق واسع في أنظمة الإنتاج
- دعم مجتمعي قوي ووثائق
المراجع والموارد
-
Python random Module - Official Docs
الوثائق الرسمية لوحدة random في Python ومولّداتها.
-
Mersenne Twister - Wikipedia
خوارزمية Mersenne Twister التي تعتمد عليها معظم مكتبات الأرقام العشوائية في لغات البرمجة.