مولد أعداد شبه عشوائية

مولد أعداد شبه عشوائية  هو خوارزمية تولد متتالية من الأعداد تقترب من خصائص الأعداد العشوائية.Random (Java Platform SE 8), Java Platform Standard Edition 8 Documentation.  هذه المتتالية، في الحقيقة ليست عشوائية لكونها محددة بشكل كامل انطلاقا من البذرة (المجموعة الصغيرة الأصلية) التي عملت عليها الخوارزمية.

مولدات الأعداد شبه العشوائية مركزية في مجموعة من التطبيقات كالمحاكاة (طريقة مونت كارلو مثالا) والألعاب الإلكترونية والتعمية.

 أمثلة عن مولدات شبه عشوائية 

 سجل إزاحة ذو تغذية خلفية خطية  (Linear Feedback Shift Register): 
في مجال الحوسبة والدوائر الرقمية، يُعرَّف سجل الإزاحة ذو تغذية خلفية خطية (LFSR)  بأنه مسجّل إزاحة تكون البتّة الداخلة إليه دالة خطية في حالته السابقة. في سياق توليد الأرقام المتتاليات العشوائية, يمكن إعتباره دائرة رقمية بسيطة تُستخدم لتوليد تسلسلات من البتّات (0 و1).

بشكل مبسط, يمكن تخيّل سجل الإزاحة على أنه صفّ من البتات. عند كل خطوة زمنية:

 تخرج بتة جديدة من أحد طرفي السجل
 تنزاح جميع البتات خانة واحدة في إتجاه اليمين (الإزاحة)
 تدخل بتة الجديدة إلى السجل و تقوم بالتفاعل مع قيم المسجل (التغذية الخلفية)

الملاحظ في المثال المبسط هو أن البتة الجديدة ليست عشوائية, بل تحسب إعتمادا على العمليات داخل السجل. أكثر دالة خطية استخدامًا على مستوى البتات المفردة هي عملية أو القاصرة (XOR). لذلك، يكون LFSR غالبًا مسجّل إزاحة تُولَّد البتّة الداخلة فيه من خلال تطبيق XOR على بعض بتات القيمة الكلية للمسجّل.
تصغير|350x350بك|مسجّل إزاحة ذو تغذية خلفية خطية من نوع بطول 16 بت. بعد كل خطوة يتم تغذية السجل بناتج عملية أو القاصرة (xor) على البتات 11 و 13 و 14 و 16.
تُسمّى القيمة الابتدائية للمسجّل البذرة (Seed). وبما أن عمل المسجّل حتمي، فإن تسلسل القيم الناتج عنه يتحدد بالكامل بحالته الأولية. ولأن للمسجّل عددًا محدودًا من الحالات الممكنة، فإنه سيدخل في نهاية المطاف في دورة تكرارية. ومع ذلك، إذا اختيرت دالة التغذية الراجعة بعناية، يمكن إنتاج تسلسل بتات يبدو عشوائيًا وله دورة طويلة جدًا. 
يُسمّى هذا النوع من سجلات LFSR سجلّ إزاحة ذو تغذية راجعة خطية بصيغة غالوا (Galois-form LFSR). يُعرَّف سجل غالوا عادةً بواسطة أربع مواصفات أساسية: 

 طول السجل n: وهو عدد البتّات المخزّنة في السجل.
 كثير حدود التغذية الخلفية: (Feedback polynomial): وهو الذي يحدّد “نقاط” أو “مواضع” التغذية الراجعة (Feedback Taps). وغالبًا يُختار كثير حدود أولي/بدائي (Primitive) إذا كان الهدف الحصول على دورة قصوى، أي المرور بأكبر عدد ممكن من الحالات مثل .
 اتجاه الإزاحة (Shift direction): هل يتم الإزاحة يمينًا أم يسارًا، وأي طرف يُعتبر بتّ الخرج. هذا مهم لأن ترقيم البتّات وتحديد المواضع يعتمد عليه.

 بذرة غير صفرية (Non-zero seed): وهي الحالة الابتدائية للسجل. ويُشترط أن لا تكون صفرا بالكامل، لأن حالة الصفر الكامل في LFSR (بشكله القياسي) تؤدي إلى “انحباس” السجل في الصفر وعدم توليد تسلسلا مفيدا.

اعتمادًا على هذه المواصفات يمكن بناء سجل غالوا، ثم تشغيله خطوةً بعد خطوة لتوليد سلسلة شبه عشوائية (Pseudo-random sequence) من البتّات. 

الحصول على دورة قصوى: يتحقق طول دورة أعظمي عندما يُختار كثير حدود تغذية خلفية بدائي (Primitive polynomial) من حقل غالوا GF(2) مع بذرة غير صفرية، عندها يكون طول الدورة  لسجل بطول  بتا. 


 انظر أيضًا 
 توليد الأعداد العشوائية
 عشاوة

 مراجع 

 وصلات خارجية 

تصنيف:مولدات أعداد عشوائية