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

خوارزمية اختيار عشوائي للأرقام HELP!

مغلق
بدأه M.A.K. في 16 أبريل 2006 · 10 رد · 3,485 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

خوارزمية اختيار عشوائي للأرقام

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

السلام عليكم ،،

أرجو المساعدة ..

أريد أن أعرف خوارزمية لبرنامج عبارة أني اسمح للمستخدم بأن يدخل الأرقام التي يريدها

و يقوم البرنامج باختيار أحد هذه الأرقام عشوائيا ..........

مثال :

Start...

Output : Enter number of the collection ...
Input  : 5
Output : Enter the collection ...
Input  : {11,13,15,20,140}
Output : Your Random No. is (15) Again?(y/n)
Input  : y
Output : Your Random No. is (20) Again?(y/n)
Input  : n

End...

طبعا أنا لا أطالب بكود البرنامج و المثال كان توضيح فقط للفكرة

كل ما أريده هو خوارزمية الاختيار العشوائي من مجهول x يحدده المستخدم .

و جزاكم الله خيرا .....،،

==================================================

( اللهم إني أسألك علما نافعا ورزقا طيبا وعملا متقبلا )

I'm not an expert programmer but I will do my best to be

غدًا سنكون أفضل منهم .... إنها مسألة إرادة و وقت

#2

طلبك شبه مستحيل...

ليس لي في الرياضيات

لكن كل شيئ ممكن

d4baa0.gif
#3

ضع الأرقام في array

و بعدين استخدم دالة randint مثلا في توليد رقم صحيح عشوائي قل مثلا بين الواحد و المائة بشرط يكون اكبر من عدد الأرقام

و اختر من مجموعة الأرقام الرقم الذي ترتيبه في المصفوفة هو نفس باقي القسمة على 5 أي على عدد الأرقام

Numbers[] = { 1 ,2 ,3 ,...} // the entered numbers

Length = x; // عدد الأرقام التي ادخلها المستخدم

output : Numbers[ randn(1, 2x )%5];

تم تعديل هذه المشاركة بواسطة شرحبيل في 16 أبريل 2006 في 16:03

#4
DeltaAziz كتب:

طلبك شبه مستحيل...

ليس لي في الرياضيات

لكن كل شيئ ممكن

صحيح DeltaAziz ليس هناك تعريف "للعشوائي" في الرياضيات الصرفة, بل نجد لها تعريفات و تطبيقات في العلوم الطبيعية والعلوم الفيزيائية :lol: .

هناك دالة في الرياضيات لتوليد الأعداد الشبه عشوائية تسمى بLinear congruential generator وتعتبر الأكثر استعمالا في العلوم الحاسوبية:

mimetex.cgi?X_{n+1}= (a.X_n + c ) Modulo

لكن اختيار القيم a و c و m تبقى مسألة صعبة لتحقيق المرجو من المعادلة.

أفضل قيم لها هي

mimetex.cgi?a= 31415821
mimetex.cgi?c= 1
mimetex.cgi?m= 10^8

مشاركة لل أخ رومانوف في منتدى الديلفي : كيف يمكن كتابة دالة او تابع يعيد الينا رقم عشوائي؟

العدد العشوائى في لغات البرمجة عموما هو عدد يقوم بتوليده الحاسب و يكون بحيث : beta تنتمي للمجال [0,1].

لو كنت تريد البحث عن رقم عشوائي في مجال آخر مثلا [a,b] فسيكون الرقم العشوائي المولد برمجيا إنطلاقا من العدد العشوائي للحاسب beta بحيث

mimetex.cgi?Random = \beta.a + (1-\beta.

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#5

لماذا لا يكون العدد العشوائي عشوائي فعلا ... يعني يعتمد مثلا على متغيرات عشوائية للنظام ... كأن يكون الرقم المولد دالة في التاريخ و الوقت ... أو ان يدخل البرنامج إلى مكان عشوائي في الذاكرة و يقرا الرقم الذي فيه ثم يبني عليه و يستخرج رقما يكون في هذه الحالة عشوائيا تماما ...

#6
اقتباس
لماذا لا يكون العدد العشوائي عشوائي فعلا ... يعني يعتمد مثلا على متغيرات عشوائية للنظام ... كأن يكون الرقم المولد دالة في التاريخ و الوقت ... أو ان يدخل البرنامج إلى مكان عشوائي في الذاكرة و يقرا الرقم الذي فيه ثم يبني عليه و يستخرج رقما يكون في هذه الحالة عشوائيا تماما ...

لان الارقام التي تخرجها تبدو عشوائية فقط اذا كان عدد التجارب قليلا (pseudo) ولكن اذا كان عدد التجارب كبيرا فان الاحصائيات تظهر ان هناك نوعا من التعميم يمكن ان الحصول عليه بواسطة هذه الارقام

للمزيد راجع كتاب the art of the prgramming

للبروفسور Knuth الجزء الثاني

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#7
M.A.K. كتب:
خوارزمية اختيار عشوائي للأرقام

أريد أن أعرف خوارزمية لبرنامج عبارة أني اسمح للمستخدم بأن يدخل الأرقام التي يريدها

و يقوم البرنامج باختيار أحد هذه الأرقام عشوائيا ..........

الخواريزمية المطلوبة هي اختيار رقم من مجموعة أرقام مخزنة بمصفوفة.

ستحتاج لدالة تسمى ب Random توفرها لك لغة البرمجة هذه الدالة ترجع لك رقما جذريا ينتمب للمجال [0;1[ ( وليس كما كتبت في المشاركتي أعلاه [0;1], خطأ مطبعي :lol: ).

الفطرة قدمها لك الأخ شرحبيل:

شرحبيل كتب:
ضع الأرقام في array

و بعدين استخدم دالة randint مثلا في توليد رقم صحيح عشوائي قل مثلا بين الواحد و المائة بشرط يكون اكبر من عدد الأرقام

و اختر من مجموعة الأرقام الرقم الذي ترتيبه في المصفوفة هو نفس باقي القسمة على 5 أي على عدد الأرقام

لنفترض أن المصفوفة التي لديك هي

mimetex.cgi?MyArr[\alpha \dots \beta]of

وليكن العدد العشوائي المختار من بين أعداد المصفوفة هو

mimetex.cgi?MyArr[Rindex]

حيث

mimetex.cgi?Rindex = truncate (\alpha .r

بما أن كل استدعاء للدالة Random سيولد عدد عشوائي جديد, إذن وجب استدعاءها مرة واحدة فقط, وتصبح المعادلة هكذا:

mimetex.cgi?Rindex = truncate ((\alpha -

دالة truncate تقوم باستخلاص الجزء الصحيح الطبيعي من عدد جذري.

في الوصلة التالية طريقة لإعادة تصفيف أعداد مصفوفة عشوائيا:

> randomization without repeating, generating random numbers without repeat

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#8

شكرا جزيلا على الاهتمام بالموضوع و لي بعض الملاحظات :

1 - العدد العشوائي أو القيمة العشوائية تنتمي لعلم الإحصاء ( كما أتذكر .. )

2- لقد قمت فعلا بتصميم منذ فترة طويلة مثل ذلك البرنامج لكنه طار بسبب فيروس !! و نسيت كيف عملته !!!!!!!!!!

3- لكن كما أتذكر فإني استخدمت المصفوفات أو بمعنى أصح فإن إجابة كل من الأساتذة ikossan و شرحبيل جائت في قلب الحل

جزاكم الله كلكم خيرا ،،

و مرة أخرى شكرا للاهتمام ،،

==================================================

( اللهم إني أسألك علما نافعا ورزقا طيبا وعملا متقبلا )

I'm not an expert programmer but I will do my best to be

غدًا سنكون أفضل منهم .... إنها مسألة إرادة و وقت

#9
اقتباس
1 - العدد العشوائي أو القيمة العشوائية تنتمي لعلم الإحصاء ( كما أتذكر .. )

لا يا اخي هناك سوء فهم الاحصاء يهتم بسلوك الاعداد العشوائية بعد الحصول عليها

ونحن هنا نهتم بالاعداد العشوائية قبل انتاجها يعني كيفية الحصول عليها

اما مراقبة سلوكها فقد نستخدم الوسائل الاحصائية وذلك لمراقبة عشوائية الاعداد التي تنتجها الخورزمية

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#10
ikossan كتب:
لكن اختيار القيم a و c و m تبقى مسألة صعبة لتحقيق المرجو من المعادلة.

أفضل قيم لها هي

mimetex.cgi?a= 31415821
mimetex.cgi?c= 1
mimetex.cgi?m= 10^8

هل لي أن أعرف لماذا هذه الأرقام هي أفضل القيم

أتمنى أن أجد إجابة سريعه

جزيتم خيرا

#11

مثلا في delphi

استعمل التعليمة random

ثم اكتب بين قوسين الرقم الاكبر مثلا 10

سوف تعيد الدالة احد الارقام بين 0 و 9 عشوائيا

لكن يجب ان تكتب في السطر قبل random

التعليمة randomize

لكي تصبح الارقام عشوائية في كل تنفيذ للبرنامج

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

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