الصنف Random
في روبي
يزوِّد الصنف 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
توابع الصنف العامة (Public Class Methods)
new
يُنشئ مولِّد أعدادٍ شبه عشوائيةٍ (PRNG) باستخدام قيمة محدَّدة للبذرة لضبط الحالة الأولية.
new_seed
يعيد قيمةً عشوائية تمثِّل البذرة.
rand
يُعيدعددًا عشوائيًّا يتراوح مجاله بحسب القيمة المُمرَّرة إليه.
srand
يحدِّد بذرة مولد الأعداد شبه العشوائية (pseudo-random number generator) للنظام، بتعيين Random::DEFAULT
، إلى القيمة المُمرَّرة إليه.
urandom
يعيد سلسلةً نصيةً (string) باستخدام ميزاتٍ توفرها المنصة
توابع النسخة العامة (Public Instance Methods)
==
يتحقَّق من تساوي الحالة الداخلية لمولِّدين.
bytes
يُعيد سلسلةً نصيةً ثنائيةً عشوائية بحجم محدَّدٍ من البايتات.
rand
يعدُّ اسمًا بديلًا (alias) للتابع Random::DEFAULT.rand
.
seed
يعيد قيمة البذرة التي استُخدمَت في إنشاء المولِّد.