المعلوماتية > عام

كيف تُولًد الأرقام العشوائية في الحاسوب؟

استمع على ساوندكلاود 🎧

تمتلكُ الأرقامُ العشوائيةُ أهميةً كبيرةً في مجالاتٍ عديدة، كتوليدِ مفاتيح تشفير البيانات، ومحاكاةِ الظواهرِ المُعقَّدة ونمذجتها، إضافة إلى اختيار عيّناتٍ عشوائيةٍ من ضِمنِ مجموعاتٍ كبيرة من البيانات، ولها استخدامات فنية وجمالية في الأدبِ والموسيقا، وتُعدُّ ألعابُ الحظِّ من أشهر استخدامات الأرقام العشوائية. 

وعندما نتكلّمُ عن رقمٍ عشوائيٍّ فإنّنا نقصدُ قيمةً واحدةً ضمن مجموعةٍ من القيم الممكنة؛ إذ تمتلكُ كلُّ قيمةٍ من هذه القيم احتمالاً متساوياً بالظهور، أي أنَّ مجموعةَ القيمِ ذاتُ توزيعٍ منتظم، وعندما نتكلَّمُ عن مجموعةٍ متسلسلةٍ من الأرقام العشوائية، فإنَّ كلَّ رقمٍ يجبُ أن يكون مستقلَّاً إحصائياً عن باقي الأرقام. 

ومع تطوّر الحواسيب، لاحظ المبرمجون الحاجةَ الماسَّة إلى إدخالِ العشوائيّة إلى البرامجِ الحاسوبية، وعلى الرغم من غرابة ذلك لكنّه من الصعب جعل البرنامج الحاسوبيِّ يجري شيئاً ما مُصادفةً. إذ يتّبعُ البرنامج الحاسوبي التعليمات على نحوٍ صارمٍ وقابِلٍ للتوقُّعِ على نحوٍ كامل (الحاسوب الذي لا يتّبعُ التعليمات يُعَدُّ حاسوباً مُعطَّلاً). 

يوجد منهجان أساسيّان لتوليدِ أرقامٍ عشوائيةٍ باستخدام الحواسيب: 

● مولّداتُ الأرقام شبه العشوائية (Pseudo-Random Number Generators: PRNGs):

هذا ما توحيه الكلمة Pseudo، والتي تعني مزيفاً أو شبيهاً، فإن الأرقام شبهُ العشوائيّة ليست عشوائيةً بالطريقة التي نتوقّعها وخاصةً إن كنّا معتادين على العشوائية الموجودة في النرد وغيرها. 

إنّ مولدات الأرقام شبه العشوائية هي خوارزمياتٌ تعتمد على معادلاتٍ رياضية أو جداولَ محسوبةٍ مُسبقا لإنتاج سلاسلَ من الأرقام التي "تبدو" عشوائية، وتعدُّ خوازميةُ مولدات المتطابقة الخطية linear congruential method مثالاً جيداً على هذا النوع من الخوارزميات، والتي ذهبت بعيداً في البحث في نظرية الأعداد شبهِ العشوائية والخوارزميات الحديثة لتوليد الأرقام العشوائية الزائفة التي تبدو كأنّها عشوائية. 

يُمكن فَهم الفارق الأساسيِّ بين مولِّدات الأرقام العشوائية والأرقام شبه العشوائية بمقارنة نتائجِ لعبةِ رميِ نردٍ مع أرقامٍ مُوَلَّدةٍ بواسطة الحاسوب. إنَّ الأرقام المُولَّدةَ بواسطة الحاسوب قد تبدو عشوائيةً لكنها مُحدَّدةٌ مُسبقاً، كونَها ناتجة عن معادلاتٍ رياضية. لذلك فإنَّ مولّداتِ الأرقام العشوائية تهدفُ إلى جعل الحواسيب ترمي النّرد فعلاً، أو بصورةٍ أعم فإنها تهدف إلى الاعتماد على ظاهرةٍ فيزيائيةٍ يسهلُ ربطها بالحاسوب أكثر من النرد. 

تتصفُ مولداتُ الأرقامِ شبهِ العشوائية بأنّها "فعالةٌ" فهي قادرةٌ على توليد الكثير من الأرقام في وقتٍ قصير، وتتصفُ بـ "الحتمية-deterministic"، فنحن نعلم أنّ سلسلةَ الأرقامِ العشوائيةِ الّتي تولَّد ستُعيدُ نفسَها في لحظةٍ معلومةٍ إذا علمنا لحظةَ البدء. 

إنّ الفعاليةَ خاصيةٌ مُفيدةٌ إذا كان التطبيقُ أو البرنامجُ يحتاجُ عدداً كبيراً من الأرقام، هذا والحتميةَ مفيدةٌ في حال احتجنا لإعادةِ الأرقامِ نفسِها في مرحلةٍ ما، إضافة إلى أنَّها قابلةٌ للتوقُّع؛ لأنّها في النهاية ستُكرِّرُ نفسَها، وعلى الرغم من أنَّ ذلك نادراً ما يكون مرغوباً؛ لكنَّ هذه المولّدات تملكُ زمناً طويلاً نسبياً قبل أن تبدأ بإعادة الأرقامِ ذاتِها، مما يجعل ذلك مُهمَلاً في التطبيقات العملية. 

تجعلُ هذه الخصائصُ مولداتِ الأرقامِ شبهِ العشوائية مناسبةً للتطبيقات التي تتطلّبُ العديدَ من الأرقام، وحيثما يكون من المفيد إعادةُ سلسلةِ الأرقامِ ذاتِها بسهولة. 

وتُعدُّ المحاكاة ونمذجةُ التطبيقات من أشهر الأمثلة على استخداماتها، لكنّها غيرُ مُناسبةٍ للتطبيقات التي تحتاج أرقاماً غيرَ قابلةٍ للتوقّع، مثل تشفير البيانات وألعاب الحظ. 

●مولدات الأرقام العشوائية الحقيقيّة (True Random Number Generators: TRNGs): 

خلافاً للمولدات شبهِ العشوائية، تعتمد المولداتُ العشوائيةُ على استخراج العشوائية من الظواهر الفيزيائية وإدخالِ ذلكَ إلى الحاسوب. 

يمكنك أن تتخيل ذلك كأنَّه حَجَرُ نردٍ موصولٌ بالحاسوب، ولكنْ عادةً ما يوصَلُ الحاسوبُ بالظَّواهرِ الفيزيائيَّة، كونُ ذلكَ أسهلَ من حجر النرد. يُمكن أن تكونُ هذه الظاهرة الفيزيائيةُ بسيطةً جداً، مثل الاختلافات القليلة في حركات الفأرة لشخصٍ ما أو في مقدار الوقت بين نقرات مفاتيح لوحة المفاتيح، ومع ذلك؛ عليك أن تكون حذراً من المصدر الذي تختاره. 

على سبيل المثال، يُمكن أن يكون استخدامُ مفاتيحِ لوحةِ المفاتيح خادعاً في هذا الشكل، لأنَّ نقرات المفاتيح غالباً ما تُخزَّنُ مؤقتاً من قِبَل نظام التشغيل لجهاز الحاسوب، وهذا يعني أنَّ عِدَّة نَقْراتٍ تُجمَعُ قَبْلَ أن تُرسَل إلى البرنامج، الذي قد يُهيَّأ لهُ أنَّ المُستخدم أجرى هذه النقرات في الوقتِ ذاته ممّا يُفقدُنا العشوائية التي كنا نبحث عنها. 

ومع ذلك، هناك العديدُ من الطرائق الأخرى للحصول على أرقامٍ عشوائيةٍ تماماً مثل الاعتمادِ على مصدرٍ مُشعّ، إذ لا يُمكن التنبؤ تماماً بالإشعاعاتِ الناتجةِ عن المصادر المشعة ويُمكن الكشف عنها بسهولةٍ وربطُها مع الحاسوب. 

تُعدّ خدمة HotBits في مدينة Fourmilab في سويسرا مثالاً ممتازاً على مولِّدات الأرقام العشوائية التي تستخدُم هذه التقنية، ومن الظواهرِ الفيزيائيّةِ المُناسبةِ الأُخرى؛ الضجيجُ في الغلاف الجوّي، والذي يُمكن التقاطهُ -بسهولة بالغة- باستخدام راديو عادي، وهذا هو النهج المُتَّبع من قِبل موقع RANDOM.ORG. 

من الممكن استخدامُ الضجيجِ الموجود في المكتب أو المختبر ولكنَّ ذلك يعرضنا لخطرِ الوقوع في النمطية مرةً أخرى، إذ أنَّ مروحة المكتب تولِّد ضجيجاً دورياً على سبيل المثال؛ مما يبعدنا عن العشوائية التي نسعى إليها. 

 

شعاعٌ من البرق يولّد ضجيجاً في الغلاف الجوي. 

مقارنةٌ بين مولدات الأرقام العشوائية الحقيقية وبين مولدات الأرقام شبهِ العشوائية: 

 

تجعل هذه الخصائص من مولّدات الأرقام العشوائية الحقيقية مُلائمة للاستخداماتِ التي لا تتناسبُ مع مولِّدات الأرقام غيرِ العشوائية، كتشفير البيانات وألعاب الحظ والمراهنة. 

لكنّ اللاحتمية وضعفَ الفعالية في مولدات الأرقام العشوائية الحقيقية يجعلُها غيرَ مُناسبةٍ لتطبيقاتِ المحاكاةِ والنمذجة التي تتطلّب أرقاماً عشوائيةً بكمياتٍ أكبر مما تنتجه تلك. 

يشير الجدول الآتي إلى الخوارزمية المناسبة لكل نمطٍ من التطبيقات المستخدمة: 

 

الأحداث الكمومية والأنظمة الفوضوية: 

من أهمِّ الخصائص التي عادةً ما يتناقش بها مطورو خوارزمياتِ توليدِ الأرقام العشوائية الحقيقية هي ما إذا كان من الأفضلِ الاعتمادُ على الظواهر الفيزيائية الكمومية أم الظواهر الفوضوية، وهناك خلافٌ دائمٌ عما إذا كانت الظواهر الكمومية هي الأفضل، ويقودنا هذا إلى تساؤلٍ مهم عن: ما إذا كان الكونُ حتمياً أم غيرَ حتميّ، ما إذا كان كلُّ ما يحدث في الكون حتمياً منذ لحظة الانفجار الكبير، ولتوضيح ذلك علينا الإشارة إلى أن: 

ميكانيكا الكم (Quantum mechanics): فرعٌ من الفيزياء النظرية (Theoretical physics) يحاولُ وصفَ الكون رياضياً على المستويين الذري ودون الذري؛ إذ يميل أصحاب الزعم القائل بأنّ الاعتمادَ على الظواهر الكمومية هو أفضل، للاعتقادِ بأنّ المكونات دون الذرية تتصرف على نحو عشوائيٍّ تماماً وعلى نحو غيرِ حتميٍّ وغيرِ قابلٍ للتوقع. 

في المقابل فإنّ الأنظمة الفوضوية هي تلك التغيرات في الظروف الأولية التي يمكن أن تؤدّي إلى تغيراتٍ جذريةٍ في السلوك العام للنظام، ولربّما سمعتَ بظاهرة أثر الفراشة (butterfly effect)؛ إذ أنّ فراشةً صغيرةً ترفرف بأجنحتها في البرازيل قد تؤثّرُ في عاصفةِ الرياح التي تضرب تكساس. 

لذلك يرى المؤيدون لاستخدام الظواهر الكمومية أنَّ الظواهرَ التي تحكمها الفيزياء التقليدية حتميّةٌ وقابلةٌ للتوقّع. من جهةٍ أُخرى فالتنبّؤ بضجيجِ الغلافِ الجويِّ يمكن أن يكون حتمياً، إلا أنّك حتى تتنبأ به يجب أن تعلم كميةً كبيرةً من المعلومات كحالة الطقسِ والعواصف الرعديّة وربما كنت بحاجةٍ لمعرفة سرعةِ كلِّ جزيءٍ وحالته في نظام الطقس، لذلك من غير العملي التنبُّؤ بالأرقام العشوائيّة المولَّدة اعتماداً على ضجيج الغلاف الجوي. 

------------------------------------------------------------ 

المصدر: 

هنا

/