الدالة randomSeed()‎ في أردوينو

من موسوعة حسوب
< Arduino‏ | math
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

تهيِّئ الدالة randomSeed()‎ البذرة التي يستعملها مولد الأعداد الشبه عشوائية (pseudo-random numbers) في عملية التوليد. استعمال قيم مختلفة للبذرة يؤدي إلى بدء المولد عملية توليد سلسلة الأعداد العشوائية عند نقطة اعتباطية. رغم أنَّ هذه السلسلة المولَّدة طويلة جدًا وعشوائيَّة إلا أنَّها ثابتة (أي تبقى نفسها ولا تتغير).

إن كان من المهم أن تختلف سلسلة من القيم المولدة باستعمال الدالة random()‎ عن بعضها بعضًا في التنفيذ اللاحق للشيفرة، فاستعمل الدالة randomSeed()‎ لتهيئة مولد العدد العشوائي مع تمرير قيمة مدخلة عشوائية تمامًا إليها، مثل قراءة قيمة الدخل التشابهي باستعمال الدالة analogRead()‎ مع رجل غير متصلة بشيء.

بشكل معاكس، قد يكون من المفيد في بعض الأحيان استعمال سلسلة من أعداد شبه عشوائية تكرِّر نفسها في كل مرة دون تغيير. يمكن أن يحدث هذا عبر استدعاء الدالة randomSeed()‎ مع عدد ثابت قبل بدء توليد سلسلة الأعداد العشوائية تلك.

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

randomSeed(seed)

المعاملات

seed

عددٌ طويلٌ عديم الإشارة يمثِّل البذرة التي سيستعملها مولد الأعداد العشوائية في توليد سلسلة من الأعداد.

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

لا يعاد أي شيء.

أمثلة

توليد أعداد شبه عشوائية وإظهارها على واجهة التخاطب التسلسلية:

long randNumber;

void setup(){
  Serial.begin(9600);

  // إن كانت رجل الدخل التشابهي 0 غير متصلة بشيء، فسيسبب
  // الضجيج من المحيط بتوليد قيم عشوائية. تمرَّر هذه القيم
  // لاستعمالها كبذرة للأعداد العشوائية randomSeed() إلى الدالة 
  // المراد توليدها في كل مرة تنفَّذ فيها الشيفرة. سيساعد هذا 
  // .في جعل الأعداد الشبه عشوائية المولد أكثر عشوائية
  randomSeed(analogRead(0));
}

void loop() {
  // طباعة عدد عشوائي يتراوح من 0 إلى 299 
  randNumber = random(300);
  Serial.println(randNumber);

  delay(50);
}

انظر أيضًا

  • الدالة random()‎: تولد عددًا شبه عشوائي (pseudo-random) وتعيده.

مصادر