الصنف Random في روبي

من موسوعة حسوب
< Ruby
مراجعة 08:00، 30 مارس 2019 بواسطة جميل-بيلوني (نقاش | مساهمات) (←‏rand)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يزوِّد الصنف Random واجهةً لمولِّد أعدادٍ شبه عشوائيَّةٍ (pseudo-random number generator، أو يُدعى PRNG) في روبي. يُنتج مولِّد الأرقام شبه العشوائيَّة (PRNG) سلاسل محدَّدةً من البِتات تقارب العشوائيَّة الحقيقية. يمكن أن تمثِّل هذه السلاسل أعدادًا صحيحيةً (integers)، أو أعدادًا عشريةً (floats)، أو سلاسل نصيَّة ثنائيَّة (binary strings).

يُهيَّأ هذا المولِّد ببذرة تعطى (seed) إمَّا من قبل النظام (system-generated) أو من قبل المستخدم (user-supplied) عبر استخدام التابع srand.

يوفر تابع الصنف rand الوظيفة القاعديَّة للتابع Kernel.rand بالترافق مع معالجةٍ أفضل للقيم ذات الفاصلة العشرية. يُشكلان بهذا واجهتين للثابتRandom::DEFAULT، ومولِّد PRNG النظام في روبي.

سيُنشئ التابع newمولد PRNG جديدًا مع حالةٍ مستقلةٍ عن Random::DEFAULT، سامحًا بذلك للمولِّدات المتعدِّدة مع عدّة قيمٍ للبذرة أو مواقع للسلاسل أن تتواجد في وقتٍ واحد. يمكن أن تنظَّم كائنات الصنف Random سامحةً بذلك للسلاسل أن تُحفَظ وتُستأنَف.

تنفَّذ مولِّدات PRNG حاليًّا على أنَّها خوارزميِّة Mersenne Twister معدَّلة بطول دورةٍ (period) يساوي إلى 1-19937**2.

الثوابت

DEFAULT

توابع الصنف العامة

new

يُنشئ مولِّد أعدادٍ شبه عشوائيةٍ (PRNG) باستخدام قيمة محدَّدة للبذرة لضبط الحالة الأولية.

new_seed

يعيد قيمةً عشوائية تمثِّل البذرة.

rand

يُعيدعددًا عشوائيًّا يتراوح مجاله بحسب القيمة المُمرَّرة إليه.

srand

يحدِّد بذرة مولد الأعداد شبه العشوائية (pseudo-random number generator) للنظام، بتعيين Random::DEFAULT، إلى القيمة المُمرَّرة إليه.

urandom

يعيد سلسلةً نصيةً (string) باستخدام ميزاتٍ توفرها المنصة.

توابع النسخة العامة

==

يتحقَّق من تساوي الحالة الداخلية لمولِّدين.

bytes

يُعيد سلسلةً نصيةً ثنائيةً عشوائية بحجم محدَّدٍ من البايتات.

rand

يعدُّ اسمًا بديلًا (alias) للتابع Random::DEFAULT.rand.

seed

يعيد قيمة البذرة التي استُخدمَت في إنشاء المولِّد.

مصادر