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

من موسوعة حسوب
< Ruby‏ | Kernel
أنشأ الصفحة ب'<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>number</code>.  تُعاد قيمة البذرة السابقة.
يحدد التابع <code>srand</code> بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، حيث يعين <code>Random::DEFAULT</code> ، ويعطيها قيمة الوسيط المُعطى <code>number</code>.  تُعاد قيمة البذرة السابقة.
إفي حال عدم إعطاء <code>number</code> ، يبذُر التابع srand المولد باستخدام مصدر للإنتروبي (entropy) يوفره نظام التشغيل ، إن كان متاحًا (/dev/urandom على أنظمة Unix أو مُوفر خوارزمية التشفير RSA على نظام Windows)، والذي يُدمج مع الوقت، ومعرف العملية (pid)، ورقم تسلسل.
 
يمكن استخدام 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/sprintf|sprintf]]</code>: يعيد التابع sprintf السلسلة النصية الناتجة من تطبيق format_string على الوسائط الإضافية.  داخل سلسلة التنسيق، يتم نسخ كل الأحرف في النتيجة باستثناء تسلسلات الشكل .
* التابع <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/sub|sub]]</code>: يكافئ التابع sub التعبير <code>$_.sub( args )</code> ، باستثناء أنه سيتم تحديث <code>$_</code> إذا حدث استبدال. متوفر فقط عند تحديد خيار سطر الأوامر -p/-n.


==مصادر==
==مصادر==
*[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.

مصادر