الفرق بين المراجعتين لصفحة: «Ruby/Kernel/srand»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>srand</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصني...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
يحدد التابع srand بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين Random :: DEFAULT ، ويعطيها | يحدد التابع <code>srand</code> بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين <code>Random::DEFAULT</code> ، ويعطيها قيمة الوسيط المُعطى <code>number</code>. تُعاد قيمة البذرة السابقة. | ||
إفي حال عدم إعطاء <code>number</code> ، يبذُر التابع srand المولد باستخدام مصدر للإنتروبي (entropy) يوفره نظام | |||
يمكن استخدام srand لضمان تكرار تسلسلات الأعداد شبه العشوائية بين عمليات التشغيل المختلفة للبرنامج. | إفي حال عدم إعطاء <code>number</code> ، يبذُر التابع <code>srand</code> المولد باستخدام مصدر للإنتروبي (entropy) يوفره نظام التشغيل، إن كان متاحًا (<code>/dev/urandom</code> على أنظمة Unix أو مُوفِّر خوارزمية التشفير RSA على نظام Windows)، والذي يُدمج مع الوقت، ومعرف العملية (pid)، ورقم التسلسل. | ||
يمكن استخدام <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> | ||
سطر 11: | سطر 13: | ||
===<code>number </code>=== | ===<code>number </code>=== | ||
قيمة البذرة. | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
تُعاد قيمة البذرة السابقة. | |||
==أمثلة== | ==أمثلة== | ||
سطر 22: | سطر 25: | ||
[ rand, rand ] # => [0.1915194503788923, 0.6221087710398319]</syntaxhighlight> | [ rand, rand ] # => [0.1915194503788923, 0.6221087710398319]</syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Kernel/ | * التابع <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. | ||
==مصادر== | ==مصادر== | ||
*[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 في توثيق روبي الرسمي.] |
مراجعة 13:02، 22 أكتوبر 2018
يحدد التابع srand
بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين Random::DEFAULT
، ويعطيها قيمة الوسيط المُعطى number
. تُعاد قيمة البذرة السابقة.
إفي حال عدم إعطاء number
، يبذُر التابع srand
المولد باستخدام مصدر للإنتروبي (entropy) يوفره نظام التشغيل، إن كان متاحًا (/dev/urandom
على أنظمة Unix أو مُوفِّر خوارزمية التشفير RSA على نظام Windows)، والذي يُدمج مع الوقت، ومعرف العملية (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
: في حال استدعاء التابعrand
بدون تمرير وسائط إليه، أو إن كانmax.to_i.abs == 0
، فسيعيد التابعrand
عددًا عشريًا شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، لكن مع استثناء 1.0.