الدالة RND() هي دالة مهمة جدًا. إذا كنت تريد إنشاء تحية عشوائية، أو مطالبة عشوائية بموعد، أو حتى لعبة، فستحتاج إلى استخدام هذه الوظيفة
دالة ASP rnd()
تقوم الدالة rnd() بإرجاع رقم عشوائي بين 0 و1.
كيفية استخدامه:
انسخ رمز الكود كما يلي:
Response.write rnd() 'قيمة الإرجاع المحتملة: 0.2357746
إذا كنت تريد استخدام الدالة rnd() لإرجاع أعداد صحيحة ضمن نطاق معين، على سبيل المثال، أرقام أكبر من أو تساوي 0 وأقل من أو تساوي عددًا صحيحًا محددًا، يمكنك استخدام الطريقة التالية:
انسخ رمز الكود كما يلي:
استجابة.كتابة كثافة العمليات ((العلوي + 1) * rnd)
على سبيل المثال، ستُرجع العبارة التالية عددًا صحيحًا بين 0 و5، بما في ذلك:
انسخ رمز الكود كما يلي:
استجابة.كتابة كثافة العمليات((5+1)*rnd)
إذا كنت تريد الحصول على رقم عشوائي ضمن نطاق معين له حد أدنى أكبر من 0، فيمكنك استخدام الطريقة التالية:
انسخ رمز الكود كما يلي:
Response.write int((الحد العلوي-السفلي+1)*rnd+الحد السفلي)
على سبيل المثال، ينتج البرنامج النصي التالي عددًا صحيحًا بين 50 و75، بما في ذلك:
انسخ رمز الكود كما يلي:
استجابة.كتابة كثافة العمليات ((75-50+1)*rnd+50)
ومع ذلك، هناك مشكلة يتم إنشاء رقم عشوائي، ولكنه نفس الرقم العشوائي في كل مرة. هذا قد يجعلك في حيرة من أمرك. هناك عبارة خاصة يمكن أن تساعد في حل هذه المشكلة، وهي العبارة العشوائية.
يتم استخدام العبارة العشوائية لإجبار الدالة rnd على استخدام تسلسل رقمي عشوائي جديد. يوفر البيان العشوائي قيمة أولية جديدة للوظيفة rnd من خلال مؤقت نظام الكمبيوتر.
الدالة RND() هي دالة مهمة جدًا. إذا كنت تريد إنشاء تحية عشوائية، أو مطالبة عشوائية بموعد، أو حتى لعبة، فستحتاج إلى استخدام هذه الوظيفة.
تقوم الدالة RND() بإرجاع رقم عشوائي بين 0 و1. فيما يلي مثال لهذه الوظيفة وقيم الإرجاع المحتملة الخاصة بها:
<%=RND()%>
0.7055643
عادةً ما تكون مهتمًا أكثر باستخدام هذه الدالة لإرجاع عدد صحيح ضمن نطاق معين. لإرجاع رقم أكبر من أو يساوي 0 ولكن أقل من عدد صحيح محدد، يمكنك استخدام العبارة التالية:
<%=INT((upperbound+1)*RND)%>
استبدل التعبير العلوي بأكبر رقم عشوائي تريد إنشاءه. على سبيل المثال، يقوم البرنامج النصي التالي بإرجاع رقم بين 0 و5، بما في ذلك:
<%=INT(5+1)*RND)%>
إذا كنت تريد إنشاء رقم عشوائي ضمن نطاق له حد أدنى أكبر من 0، فيمكنك استخدام البرنامج النصي التالي:
<%=INT((الحد العلوي - الحد السفلي + 1)*RND+الحد السفلي)%>
على سبيل المثال، يقوم البرنامج النصي التالي بإنشاء رقم عشوائي بين 50 و75 (ضمنا):
<%=INT((75-50+1)*RND+50)%>
قد يفاجئك أنه كلما استخدمت الدالة RND()، فإنها تقوم بإرجاع نفس الأرقام العشوائية وبنفس الترتيب. خذ بعين الاعتبار المثال التالي:
انسخ رمز الكود كما يلي:
<%
Pick_Greeting=INT((2+1)*RND)
اختر حالة Pick_Greeting
الحالة 0
تحية = "مرحبا!"
الحالة 1
تحية = "مرحبا!"
الحالة 2
تحية = "سعيد لرؤيتك!"
نهاية التحديد
%>
<%=تحية%>
يقوم هذا البرنامج النصي بإنشاء وطباعة تحية عشوائية. ومع ذلك، فمن الممكن أن الأمر لا يعمل بالطريقة التي تتخيلها. عندما يقوم شخص ما بتنزيل صفحة ويب تحتوي على هذا البرنامج النصي، سيتم طباعة نفس التحية العشوائية. إذا عاد شخص ما إلى هذه الصفحة عدة مرات، فسوف يحصل على نفس التحية. يتم إنشاء رقم عشوائي، ولكنه نفس الرقم العشوائي في كل مرة.
هناك بيان خاص يساعد في حل هذه المشكلة. يتم استخدام عبارة RANDOMIZE لإجبار الدالة RND() على استخدام تسلسل رقمي عشوائي جديد. يوفر بيان RANDOMIZE قيمة أولية جديدة لوظيفة RND() من خلال جهاز ضبط وقت نظام الكمبيوتر. يوضح المثال التالي كيفية تعديل المثال أعلاه بحيث يعمل بشكل صحيح:
انسخ رمز الكود كما يلي:
<%
ترتيب عشوائي
Pick_Greeting=INT((2+1)*RND)
اختر حالة Pick_Greeting
الحالة 0
تحية = "مرحبا!"
الحالة 1
تحية = "مرحبا!"
الحالة 2
تحية = "سعيد لرؤيتك!"
نهاية التحديد
%>
<%=تحية%>
هذا البرنامج النصي يعمل بشكل صحيح. في كل مرة يتم فيها تنفيذ هذا البرنامج النصي، سيتم إنشاء تحية عشوائية جديدة. يفرض بيان RANDOMIZE على الدالة RND() استخدام تسلسل جديد من الأرقام العشوائية.
أخيرًا، إذا كنت مهتمًا بتوزيع القيم التي تنتجها الدالة RND()، فيمكنك تحديدها باستخدام البرنامج النصي التالي:
انسخ رمز الكود كما يلي:
<%
CONST الحد العلوي = 9، التكرارات = 100
REDIM DIST (العلوي)
ترتيب عشوائي
FOR i=1 للتكرارات
rnd_num=INT((العلوي+1)*RND)
DIST(rnd_num)=DIST(rnd_num)&"#"
التالي
FOR i=0 إلى الحد العلوي
%>
<%=i&” : “&DIST(i)%><BR>
<%
التالي
%>
يقوم هذا البرنامج بإنشاء 100 رقم عشوائي بين 0 و9. فهو يتتبع عدد الأرقام العشوائية التي يتم إنشاؤها لكل قيمة. وأخيرًا، يقوم بطباعة مخطط شريطي يمثل النتائج.