الفرق بين المراجعتين لصفحة: «Ruby/Kernel/srand»

من موسوعة حسوب
< Ruby‏ | Kernel
لا ملخص تعديل
تدقيق
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
يحدد التابع <code>srand</code> بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين <code>Random::DEFAULT</code> ، ويعطيها قيمة الوسيط المُعطى <code>number</code>.  تُعاد قيمة البذرة السابقة.
يضبط التابع <code>srand</code> بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، إذ يعين <code>Random::DEFAULT</code> ويعطيها قيمة العدد المُعطى ثم يعيد قيمة البذرة السابقة.


إفي حال عدم إعطاء <code>number</code> ، يبذُر التابع <code>srand</code> المولد باستخدام مصدر للإنتروبي (entropy) يوفره نظام التشغيل، إن كان متاحًا (‎<code>/dev/urandom</code> على أنظمة Unix أو مُوفِّر خوارزمية التشفير RSA على نظام Windows)، والذي يُدمج مع الوقت، ومعرف العملية (pid)، ورقم التسلسل.
في حال عدم تمرير أي عدد إلى التابع، يحدد التابع <code>srand</code> بذرةً للمولد باستخدام مصدر العشوائية (entropy) الذي يوفره نظام التشغيل، إن كان متاحًا (وهو ‎<code>/dev/urandom</code> على أنظمة يونكس أو مُوفِّر خوارزمية التشفير RSA على نظام ويندوز)، والذي يُدمَج مع الوقت، ومعرف العملية (pid)، ورقم التسلسل.


يمكن استخدام <code>srand</code> لضمان تكرار تسلسلات الأعداد شبه العشوائية بين عمليات التشغيل المختلفة للبرنامج. فعبر ضبط البذور عند قيمة معروفة، يمكن جعل البرامج حتمية أثناء الاختبار.
يمكن استخدام التابع <code>srand</code> لضمان تكرار تسلسلات الأعداد شبه العشوائية بين عمليات التشغيل المختلفة للبرنامج. فعبر ضبط البذور عند قيمة معروفة، يمكن جعل البرامج حتمية وقابلة للتنبؤ أثناء الاختبار.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">srand(number = Random.new_seed) → old_seed‎</syntaxhighlight>
<syntaxhighlight lang="ruby">srand(number = Random.new_seed) → old_seed‎</syntaxhighlight>
==المعاملات==
==المعاملات==
===<code>number </code>===
===<code>number</code>===
 
قيمة البذرة المراد تعيينها لمولد الأعداد العشوائية.
قيمة البذرة.
==القيمة المعادة==
==القيمة المُعادة==
تُعاد قيمة البذرة السابقة.
تُعاد قيمة البذرة السابقة.
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>srand‎</code>:
مثال على استخدام التابع <code>srand‎</code>:<syntaxhighlight lang="ruby">srand 1234              # => 268519324636777531569100071560086917274
<syntaxhighlight lang="ruby">srand 1234              # => 268519324636777531569100071560086917274
[ rand, rand ]          # => [0.1915194503788923, 0.6221087710398319]
[ rand, rand ]          # => [0.1915194503788923, 0.6221087710398319]
[ rand(10), rand(1000) ] # => [4, 664]
[ rand(10), rand(1000) ] # => [4, 664]
سطر 25: سطر 22:
[ rand, rand ]          # => [0.1915194503788923, 0.6221087710398319]‎</syntaxhighlight>
[ rand, rand ]          # => [0.1915194503788923, 0.6221087710398319]‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/rand|rand]]</code>: في حال استدعاء التابع <code>rand</code> بدون تمرير وسائط إليه، أو إن كان <code>max.to_i.abs == 0</code>، فسيعيد التابع <code>rand</code> عددًا عشريًا شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، لكن مع استثناء 1.0.
*التابع <code>[[Ruby/Kernel/rand|rand]]</code>: يولد عددًا شبه عشوائي يقع ضمن مجال محدَّد.
 
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-srand قسم التابع srand‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-srand قسم التابع srand‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 05:16، 17 نوفمبر 2018

يضبط التابع srand بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، إذ يعين Random::DEFAULT ويعطيها قيمة العدد المُعطى ثم يعيد قيمة البذرة السابقة.

في حال عدم تمرير أي عدد إلى التابع، يحدد التابع srand بذرةً للمولد باستخدام مصدر العشوائية (entropy) الذي يوفره نظام التشغيل، إن كان متاحًا (وهو ‎/dev/urandom على أنظمة يونكس أو مُوفِّر خوارزمية التشفير RSA على نظام ويندوز)، والذي يُدمَج مع الوقت، ومعرف العملية (pid)، ورقم التسلسل.

يمكن استخدام التابع srand لضمان تكرار تسلسلات الأعداد شبه العشوائية بين عمليات التشغيل المختلفة للبرنامج. فعبر ضبط البذور عند قيمة معروفة، يمكن جعل البرامج حتمية وقابلة للتنبؤ أثناء الاختبار.

البنية العامة

srand(number = Random.new_seed)  old_seed

المعاملات

number

قيمة البذرة المراد تعيينها لمولد الأعداد العشوائية.

القيمة المعادة

تُعاد قيمة البذرة السابقة.

أمثلة

مثال على استخدام التابع srand‎:

srand 1234               # => 268519324636777531569100071560086917274
[ rand, rand ]           # => [0.1915194503788923, 0.6221087710398319]
[ rand(10), rand(1000) ] # => [4, 664]
srand 1234               # => 1234
[ rand, rand ]           # => [0.1915194503788923, 0.6221087710398319]‎

انظر أيضا

  • التابع rand: يولد عددًا شبه عشوائي يقع ضمن مجال محدَّد.

مصادر