الفرق بين المراجعتين ل"Ruby/Kernel/rand"

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>rand‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...')
 
(تدقيق)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
في حال استدعاء التابع rand بدون تمرير وسائط إليه، أو إن كان <code>max.to_i.abs == 0</code>، فسيعيد التابع rand عدد عشري شبه عشوائي (pseudo-random) محصور بين 0.0 و 1.0، متضمنا 0.0، وباستثناء 1.0.
+
يولد التابع <code>rand</code> عددًا شبه عشوائي يقع ضمن مجال محدَّد.
 +
==البنية العامة==
 +
<syntaxhighlight lang="ruby">rand(max=0) → number‎</syntaxhighlight>إن استدعي التابع <code>rand</code> بدون تمرير معاملات إليه، أو إن كان <code>max.to_i.abs == 0</code>، فسيعيد التابع <code>rand</code> عددًا عشريًا شبه عشوائي (pseudo-random) محصورًا في المجال 0.0 و 1.0 (يدخل 0.0 ضمن المجال بينما لا يدخل 1.0). إذا كان <code>max.abs</code> أكبر من أو يساوي <code>1</code>، فسيعيد <code>rand</code> عددًا صحيحًا عشوائيًا أكبر من أو يساوي <code>0</code>، وأصغر من <code>max.to_i.abs</code>.
  
إذا كان <code>max.abs</code> أكبر من أو يساوي 1، فسيعيد <code>rand</code> عددًا صحيحًا عشوائيًا أكبر من أو يساوي 0، وأصغر من <code>max.to_i.abs</code>.
+
إذا كان المعامل المعطى مجالًا (من النوع <code>[[Ruby/Range|Range]]</code>فسيعيد <code>rand</code> عددًا عشوائيًا يقع ضمن هذا المجال (يحقق <code>range.member?(number) == true</code>).
  
إذا كان <code>max</code> مجالًا (<code>Range</code>)، فسيعيد <code>rand</code> عددًا عشوائيًا يحقق range.member?(number) == true.
+
يمكن تمرير قيمة سالبة أو عشرية إلى المعامل، ولكنها قد تؤدي إلى إعادة نتائج مفاجئة.
يُسمح بإعطاء <code>max</code> قيمًا سالبة أو عشرية، ولكنها قد تؤدي إلى إعادة نتائج مفاجئة.
 
  
يمكن استخدام <code>#srand</code> لضمان أنه يمكن إعادة إنتاج متتاليات الأعداد العشوائية بين مختلف عمليات التشغيل للبرنامج.
+
يمكن استخدام التابع <code>[[Ruby/Kernel/srand|srand]]</code> لضمان أنه يمكن إعادة إنتاج متتاليات الأعداد العشوائية بين مختلف عمليات التشغيل للبرنامج.
انظر أيضا <code>Random#rand</code>.
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">rand(max=0) → number‎</syntaxhighlight>
 
 
==المعاملات==
 
==المعاملات==
 
===<code>max‎</code>===
 
===<code>max‎</code>===
 
+
الحد الأقصى للعدد العشوائي المراد توليده. يمكن أن يكون عددًا أو [[Ruby/Range|مجالًا]].
 
+
==القيمة المعادة==
==القيمة المُعادة==
+
يعاد عددٌ عشوائيٌ يقع بين المجال 0.0 و 1.0 (يدخل 0.0 ضمن المجال بينما لا يدخل 1.0) إن لم يُعطَ المعامل <code>max</code>، أو يقع بين المجال 0.0 و <code>max.abs</code> إن أعطي، أو يقع بين المجال الذي يحدده المعامل <code>max</code> إن كان مجالًا من النوع [[Ruby/Range|<code>Range</code>]].
  
 
==أمثلة==
 
==أمثلة==
مثال على استخدام التابع <code>rand‎</code>:
+
مثال على استخدام التابع <code>rand‎</code>:<syntaxhighlight lang="ruby">rand        #=> 0.2725926052826416‎</syntaxhighlight>
<syntaxhighlight lang="ruby">rand        #=> 0.2725926052826416‎</syntaxhighlight>
 
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/raise|raise]]</code>: في حال عدم تمريرأي وسائط، سيطلق التابع raise استثناء في <code>$!</code> أو يطلق <code>RuntimeError</code> إن كان <code>$!</code> يساوي <code>nil</code>. في حال تمرير وسيط واحد <code>String</code>، فسيطلق <code>RuntimeError</code> بحيث يكون الوسيط الممرر string الرسالة. خلا ذلك، يجب أن يكون الوسيط الأول اسما للصنف <code>Exception</code> (أو كائنًا يعيد كائن <code>Exception</code> عند تلقيه رسالة <code>exception</code>). يحدد الوسيط الاختياري الثاني رسالة الاستثناء، أما الوسيط الثالث فهو مصفوفة تضم معلومات الاستدعاء. تُضبط الاستثناءات بواسطة جملة <code>rescue</code> من كتل <code>begin...end</code>.
+
*التابع <code>[[Ruby/Random/rand|Random.rand]]</code>: يولد عددًا عشوائيًّا.
* التابع <code>[[Ruby/Kernel/readline|readline]]</code>: يكافئ التابع readline التعبير <code>Kernel::gets</code> ، باستثناء أنّ <code>readline</code> تطلق خطأ <code>EOFError</code> عند نهاية الملف.
+
*التابع <code>[[Ruby/Kernel/readline|srand]]</code>: يحدد بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator).
 
 
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-rand قسم التابع rand‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-rand قسم التابع rand‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

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

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

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

rand(max=0)  number

إن استدعي التابع rand بدون تمرير معاملات إليه، أو إن كان max.to_i.abs == 0، فسيعيد التابع rand عددًا عشريًا شبه عشوائي (pseudo-random) محصورًا في المجال 0.0 و 1.0 (يدخل 0.0 ضمن المجال بينما لا يدخل 1.0). إذا كان max.abs أكبر من أو يساوي 1، فسيعيد rand عددًا صحيحًا عشوائيًا أكبر من أو يساوي 0، وأصغر من max.to_i.abs.

إذا كان المعامل المعطى مجالًا (من النوع Range)، فسيعيد rand عددًا عشوائيًا يقع ضمن هذا المجال (يحقق range.member?(number) == true).

يمكن تمرير قيمة سالبة أو عشرية إلى المعامل، ولكنها قد تؤدي إلى إعادة نتائج مفاجئة.

يمكن استخدام التابع srand لضمان أنه يمكن إعادة إنتاج متتاليات الأعداد العشوائية بين مختلف عمليات التشغيل للبرنامج.

المعاملات

max‎

الحد الأقصى للعدد العشوائي المراد توليده. يمكن أن يكون عددًا أو مجالًا.

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

يعاد عددٌ عشوائيٌ يقع بين المجال 0.0 و 1.0 (يدخل 0.0 ضمن المجال بينما لا يدخل 1.0) إن لم يُعطَ المعامل max، أو يقع بين المجال 0.0 و max.abs إن أعطي، أو يقع بين المجال الذي يحدده المعامل max إن كان مجالًا من النوع Range.

أمثلة

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

rand        #=> 0.2725926052826416‎

انظر أيضا

  • التابع Random.rand: يولد عددًا عشوائيًّا.
  • التابع srand: يحدد بذرة مولد الأعداد شبه العشوائية (system pseudo-random number generator).

مصادر