ملخص: تستخدم الأرقام العشوائية الزائفة على نطاق واسع في تصميم برامج الكمبيوتر. تقدم هذه المقالة المبادئ العامة لتوليد الأرقام العشوائية الزائفة، واستخدام الفئة Random وطرقها المتوفرة في ASP.NET Framework لإنشاء أرقام عشوائية في نطاقات مختلفة تلبي المتطلبات المختلفة. وأخيرًا، مع نموذج التحكم في الويب، يتم شرح تطبيق الأرقام العشوائية في ASP.NET في تصميم البرامج.
الكلمات المفتاحية ASP.NET؛ توليد الأرقام العشوائية الزائفة؛ الويب؛ الأرقام العشوائية الشبيهة بالعشوائية
تستخدم على نطاق واسع في تصميم البرمجيات، وخاصة في مجالات محاكاة البيئة العملية واختبارها. من أجل متابعة تسلسلات عشوائية حقًا، استخدم الناس العديد من الطرق الفيزيائية البدائية لتوليد تسلسلات موزعة بشكل موحد تلبي الدقة (عدد البتات) ضمن نطاق معين، وتتمثل عيوبها في: السرعة البطيئة، وانخفاض الكفاءة، وتتطلب قدرًا كبيرًا من التخزين المساحة وعدم التوفر مرة أخرى وما إلى ذلك. من أجل تلبية احتياجات أبحاث المحاكاة الحاسوبية، يلجأ الناس إلى البحث عن استخدام الخوارزميات لإنشاء تسلسلات شبه عشوائية تحاكي التوزيعات الاحتمالية المختلفة. تشير الأرقام العشوائية الزائفة إلى أرقام عشوائية تم إنشاؤها بواسطة صيغ العودية الرياضية. من الناحية العملية، فإن الطريقة الأبسط والأكثر طبيعية للحصول على مثل هذه الأرقام هي استخدام مولد أرقام عشوائي توفره مكتبة لغات الكمبيوتر. توفر بيئات التطوير المختلفة وظائف وطرق مختلفة لتوليد أرقام عشوائية. عادةً ما يتم إخراج متغير عشوائي زائف يتم توزيع قيمه بشكل موحد بين 0 و 1.
مولد الأرقام العشوائية هو
وسيلة لتوليد أرقام عشوائية في جهاز الكمبيوتر، وغالبًا ما يستخدم الصيغة التالية:
البرنامج الذي يستخدم هذه الصيغة لتوليد سلسلة من الأرقام العشوائية a1, a2,... من 0 إلى 65536 يسمى مولد الأرقام العشوائية التوافقية المضاعفة المكونة من 232 خطوة. من بينها، b وc وd هي أعداد صحيحة موجبة، ويسمى d بذرة التسلسل العشوائي الناتج عن الصيغة.
يمكن أن نرى من هذه الصيغة أنه بمجرد تحديد المعلمات b وc وd، يتم تحديد التسلسل العشوائي الناتج أيضًا. ويسمى هذا التسلسل الذي يرضي العشوائية إلى حد معين فقط بالرقم العشوائي الزائف.
فيما يلي مثال لمولد الأرقام العشوائية. من بينها، تسمح الدالة Rand_seed للمستخدم بتحديد بذرة رقم عشوائي. عندما تكون المعلمة الرسمية d=0، يتم استخدام الوقت الحالي للنظام كبذرة للرقم العشوائي عند تحديد d≠0, d كـ بذرة؛ تعتمد الوظيفة العشوائية على البذرة المعطاة، وحساب بذرة جديدة وإنشاء رقم عشوائي جديد في نطاق منخفض ~ مرتفع.
# تعريف المضاعف 0x015A4E35L
#define INCREMENT 1
void Random_seed(unsigned long d){
إذا (د==0)seed = time(0);
بذور أخرى = د؛}
عشوائي غير موقع (غير موقع طويل منخفض، غير موقع طويل مرتفع)
{
البذور = المضاعف * البذور + الزيادة؛
return ((seed>>16)% (من أعلى إلى أدنى) + منخفض);
}
}
إن آلية إنشاء الأرقام العشوائية الزائفة في ASP.NET
تجعل من المستحيل على الكمبيوتر إنشاء أرقام عشوائية تمامًا. يستخدم ما يسمى بمولد الأرقام العشوائية خوارزمية معينة لإجراء عمليات معقدة على البذور العشوائية المحددة مسبقًا، ويستخدم النتائج الناتجة لمحاكاة أرقام عشوائية تمامًا تقريبًا. ويسمى هذا النوع من الأرقام العشوائية بالأرقام العشوائية الزائفة. يتم اختيار الأرقام العشوائية الزائفة من مجموعة محدودة من الأرقام ذات الاحتمالية المتساوية. الأرقام المختارة ليست عشوائية تمامًا، ولكنها عشوائية بدرجة كافية لأغراض عملية.
1. وظائف VB.NET المضمنة
يمكن لبرامج ASP.NET استخدام مجموعة متنوعة من لغات البرمجة. لغة البرمجة الافتراضية هي VB.NET. على الرغم من أن VB.NET وVB متشابهان إلى حد ما، إلا أن بيئات التطبيق الخاصة بهما مختلفة وطرق الكتابة الكود مختلف وهناك اختلافات أيضًا. في VB.NET، إذا كنت تريد استخدام الدوال الرياضية، فيجب عليك اجتياز فئة Math التي يوفرها .NET Framework، والتي تقع ضمن مساحة اسم النظام. يمكن للمستخدمين إضافة نظام الاستيراد في الجزء العلوي من التعليمات البرمجية لاستخدامها وظائف رياضية.
النموذج الأولي للدالة المستخدمة لإنشاء أرقام عشوائية هو: Rnd(x) يتم استخدام هذه الوظيفة لإنشاء رقم عشوائي أحادي الدقة بين 0 و 1. x هي البذرة لتوليد أرقام عشوائية. إذا كنت تريد تحديد رقم عشوائيًا من نطاق (min, max)، فستحتاج إلى استخدام الصيغة: رقم عشوائي = (max - min) * Rnd(x) + min.
يبدأ اختيار الأرقام العشوائية الزائفة من البذور العشوائية ومن أجل التأكد من أن الأرقام العشوائية الزائفة التي يتم الحصول عليها في كل مرة هي "عشوائية" بشكل كافٍ، فإن اختيار البذور العشوائية مهم جدًا. إذا كانت البذور العشوائية المحددة هي نفسها، فستكون التسلسلات العشوائية التي تم إنشاؤها هي نفسها أيضًا. بشكل عام، يتم استخدام المعلمات المتعلقة بوقت النظام كبذور عشوائية، وهي أيضًا الطريقة الافتراضية التي يستخدمها منشئ الأرقام العشوائية في .net Framework.
2. فئة الأرقام العشوائية System.Random
فئة الأرقام العشوائية توفر فئة System.Random الطرق التالية لإنشاء أرقام عشوائية مختلفة تلبي متطلبات مختلفة، كما هو موضح في الجدول 1:
الجدول 1 الأساليب المختلفة التي توفرها فئة System.Random
رقم سري | اسم الطريقة | وصف الوظيفة |
1 | التالي() | إرجاع عدد صحيح بين 0 و 2147483647 |
2 | التالي(ط) | إرجاع عدد صحيح بين 0 وi |
3 | التالي (ط، ي) | قم بإرجاع عدد صحيح بين i~j |
4 | التالي مزدوج () | إرجاع رقم عشري عشوائي بين 0 و 1 |
5 | التالي مزدوج (بايت ()) | استخدم عددًا صحيحًا عشوائيًا بين 0 و255 كقيمة لكل عنصر في صفيف البايت. |
باستخدام فئة الأرقام العشوائية System.Random يجب الإعلان عنها أولاً. إذا كنت تريد استخدام الأسلوب Nextbytes(byte())، فيجب عليك أيضًا الإعلان عن صفيف البايت قبل استخدامه.
3. يجب أن تنشئ كتابة برنامج الاختبار
بيئة التطوير والتشغيل الخاصة به قبل تشغيل برنامج ASP.NET، بما في ذلك تكوين Microsoft IIS وتثبيت .NET Framework SDK ومحرر MSE الخاص بالجهاز. يعد محرر MSE برنامجًا إضافيًا لبرنامج Microsoft Office وهو مناسب جدًا كأداة تحرير لـ ASP.NET. رمز برنامج الاختبار هو كما يلي:
<script language="vb" runat="server">
subpage_load(send as object,e as eventsargs)
خافت r1 كعشوائي = عشوائي جديد ()
Response.write("نتيجة r1.next() هي:"+r1.next().tostring())
Response.write("heresultofr1.next(100)هو:" +r1.next(100).tostring())
Response.write("نتيجة r1.next(100,150) هي:"+r1.next(100,150).tostring())
Response.write("نتيجة r1.nextdouble() هي:"+r1.nextdouble().tostring())
r1.nextbytes(r) // خافت r(300) كبايت
استجابة.كتابة ("ص (100) هو:")
استجابة.كتابة (ص (199))
end sub </script>
تظهر نتائج الاختبار في الشكل 1:
الشكل 1: نتائج اختبار الأرقام العشوائية الزائفة
مثال على
تحليل متطلبات تطبيق التطوير: إنشاء تطبيق لمحاكاة لعبة النرد. في هذه اللعبة، يقوم اللاعبون برمي حجر النرد بشكل عشوائي. يحتوي كل قالب على ستة جوانب، تمثل النقاط الست 1، 2، 3، 4، 5، و6 على التوالي. عندما يتوقف النرد، انظر إلى الرقم الموجود على السطح العلوي للنرد. إذا كان عدد الرميات 6، سيتم عرض الرسالة الفائزة، وإلا ستستمر الرمي.
1. التقنيات الأساسية
1.1 نموذج التحكم في الويب
يتميز نموذج التحكم في الويب بالخصائص الموجهة نحو الكائنات للغة عالية المستوى، وهو كائن من مساحة الاسم System.Web.UI.WebControls في ASP.NET. تشبه عملية المعالجة نموذج التحكم بتنسيق HTML، مع الخصائص التالية: يتم تشغيل النموذج من جانب الخادم؛ وجميع حقول الإدخال عبارة عن عناصر تحكم، ولها خصائص وأساليب قوية وغنية، ويمكن الاحتفاظ بمعلومات حقول الإدخال؛ لديه القدرة على التحقق من حقول الإدخال، ويحتوي على عناصر التحكم في عرض البيانات، وما إلى ذلك.
رمز نموذج تحكم الويب النموذجي هو كما يلي:
<asp: Button id="sub3" text="confirm" runat="server"/>
ومن بينها، يشير ASP: XXX إلى نوع عنصر تحكم الويب الذي تشير إليه سمة المعرف اسم تعريف عنصر التحكم؛ قيمة سمة Runat هي الخادم، مما يشير إلى أن هذا عنصر تحكم يعمل على جانب الخادم.
عناصر تحكم الويب التي سيتم استخدامها في هذا المثال هي بشكل أساسي عناصر تحكم بالأزرار. يتم استخدام عنصر التحكم في الصورة لعرض ملفات الصور وله السمات التالية: Imageurl، الذي يشير إلى عنوان URL لعرض ملف الصورة، وعرض عرض ملف الصورة، وارتفاع عرض ملف الصورة، وما إلى ذلك.
1.2 توليد أرقام عشوائية زائفة
وفقًا لوصف تحليل المتطلبات، من أجل محاكاة النقاط التي تم الحصول عليها عن طريق رمي النرد بشكل عشوائي، من الضروري توليد أعداد صحيحة تتراوح من 1 إلى 6 بشكل عشوائي. في هذه الحالة، الطريقة التالية (i، j) يمكن استخدام فئة System.Random حيث i=1, j=7. (كتب المؤلف برنامج اختبار ووجد أنه إذا كان j=6، فإن الرقم العشوائي الناتج يكون بين 1 و5)
2. تنفيذ البرنامج
الكود الرئيسي للبرنامج هو كما يلي:
<script language="vb" runat="server" ">
sub disp(obj as object,e as eventsargs)
dim r1 as Random =new Random() // تحديد فئة رقم عشوائي
dim file_prefix as string = "Imagesdie"
dim file_suffix as string = ".png"
value = r1.next(1,7) // قيمة خافتة كعدد صحيح
s1 = file_prefix + value.tostring() + file_suffix
pic1.imageurl = s1 // قم بتحديث سمة imageurl لعنصر التحكم في الصورة
إذا كانت القيمة = 6 ثم
disp.text = " لقد فزت" // عرض معلومات المطالبة
else
disp.text = "حاول مرة أخرى"
end if
end sub
</script>
<form id="form1" runat="server"><br>
<asp:button id="disp" runat = "server " onclick = "disp" text = "start"/>
<asp:image id = "pic1" runat = "server" width = "50" height = "50"/></form>
نتيجة التشغيل ويظهر من البرنامج في الشكل 2 المبين:
الشكل 2 نتائج تشغيل البرنامج
الخلاصة
يتم استخدام الأرقام العشوائية الزائفة في العديد من الأماكن في تطبيقات الويب. كيفية اختيار المعلمات الأولية لتوليد تسلسلات عشوائية، وأي خوارزمية عشوائية يجب استخدامها لإنشاء تسلسلات عشوائية زائفة ذات أداء أفضل هي برامج الكمبيوتر. المطورين واحدة من الأهداف المتبعة. باستخدام فئة توليد الأرقام العشوائية الزائفة التي يوفرها إطار عمل ASP.NET وطرق الوظائف التي توفرها لغة البرمجة النصية VB.NET، يمكن إنشاء تسلسلات عشوائية متنوعة تلبي متطلبات مختلفة. على سبيل المثال، يستخدم رمز التحقق العشوائي المستخدم للتحقق من الهوية في نظام الويب تقنية توليد الأرقام العشوائية. هناك العديد من المقالات على هذا الموقع، لذلك لن أخوض في التفاصيل هنا.