الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اكتشفت شي غريب جدا

مغلق
بدأه matiz في 23 مايو 2004 · 3 رد · 993 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا مبتدأ في الدوت نت

وقد تعرفت على الدالة

RND()

وهي لتوليد الرقم العشوائي

والنتيجة ان الرقم الذي ظهر لي ليس عشوائيا وهو يتكرر كلما نفذت الدالة

اليكم مثالي

صممت لعبة بسيطة

يوجد بها ثلاث خانات

اذا ظهر الرقم 7 في الخانة الاولى يكتب لك نتيجة 10

واذا ظهرت بالثانية يكتب لك نتيجة 5

واذا ظهرت بالخانة الثالثة يكتب لك نتيجة 1

وقمت بتنفيذها بالتايمر لمدة 100 مره وفي النهاية احصل على نفس الرقم

وذلك يدل على ان هذه الدالة ليست عشوائية بل محسوبة بطريقة معينه

والمثال مرفق

game.zip

#2

اكتب في بداية المشروع او قبل البدء في استخدام الدالة

    Randomize
    Caption = Rnd

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#3

السلام عليكم

إستخدم السلوك NEXT في الوظيفة RND

بهذا الشكل لتعطيك أرقام عشوائية غير مكررة , كما هو الحال مع إستخدام الوظيفة

نفسها دون السلوك NEXT

اي بإستخدام السلوك NEXT ستكون العشوائية نزيهه وعادلة وحيادية كذلك .

 Me.lblRandom.Text = _
        CInt(rnd.Next(1, 11)) 'Random form 1 To 10

في المثال يتضح المقال

#4

تعليق فقط على الموضوع ,,

لو فكرت في أن تنتج رقم عشوائي ,, باستخدام معادلة أو ماشابه ذلك ,, فلن تخرج بنتيجة ,, حتى لو كانت معادلة التوليد معقدة جدا ,, ففي النهاية ستعطي في بعض الأحيان أعداد مكررة ,, وكل مايبدأ من جديد سيعطي نفس ترتيب الأرقام ,,

اذا كيف يمكن توليد أرقام عشوائية ؟ الطرقة الأسلم هي استخدام الزمن كمتغير في معادلة ,, حيث نتأكد من أن الزمن مستحيل أن يتكرر بنفس الطريقة ,, يعني التاريخ السنة والشهر واليوم والساعة والثانية ,, كلها تدمج في متغير واحد ,, ونتأكد بالطبع أن كل مرة نشغل فيها البرنامج ستكون القيمة مختلفة ,, وهذه هي طريقة عمل الدوال randomize و rand ,,

لذا فمن المستحيل أن تنتج أرقام متكررة ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

مواضيع مشابهة