الفرق بين المراجعتين ل"Ruby/Kernel/srand"
جميل-بيلوني (نقاش | مساهمات) (تدقيق) |
|||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
− | + | يضبط التابع <code>srand</code> بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator)، إذ يعين <code>Random::DEFAULT</code> ويعطيها قيمة العدد المُعطى ثم يعيد قيمة البذرة السابقة. | |
− | + | في حال عدم تمرير أي عدد إلى التابع، يحدد التابع <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>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>[[Ruby/Kernel/rand|rand]]</code>: يولد عددًا شبه عشوائي يقع ضمن مجال محدَّد. |
− | |||
==مصادر== | ==مصادر== | ||
− | *[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-srand قسم | + | *[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
: يولد عددًا شبه عشوائي يقع ضمن مجال محدَّد.