اريد توليد ارقام عشوائية بطول 15 خانه
وشكرا
اريد توليد ارقام عشوائية بطول 15 خانه
وشكرا
السلام عليكم
أخي بإمكانك إستعمال هذا الكود علما أني حصرت الأرقام بين 10 و 50 وبإمكانك تغيرها بالكيفية التي تتناسب مع حاجياتك
Random RD = new Random();
//Returns a nonnergative number less than 50 greater than 10
int i = 0;// indexes
int[] V = new int[15];//the vector
while (i < 15)
{
int b = RD.Next(10, 50); // generate random Nbr
V=b;
i++; // increament index
}شكرا أخي على الرد
بس حاولت بهذه الطريقة ما قدرت اولد ارقام بطول 14 خانه
اكثر شي 10 خانات
وشكرا
السلام عليكم
أخي في هذه التعليمة قمت بحجز مصفوفة ذات بعد واحد وطولها 15
int[] V = new int[15];//the vector
بهذه التعليمة سيعيد عمل ما 15 مرة من صفر إلى 14
while (i < 15)
وبهذه التعليمة يولد في كل مرة رقم عشوائي ثم يضيفه الى المصفوفة وتحديد في المكان i الذي سيتغير تصاعديا من صفر الى 14
int b = RD.Next(10, 50); // generate random Nbr V=b;
وهكذا ينتقل الى المكان الموالي حيث سيضع القيمة الجديدة
i++; // increament index
هذا شرح مبسط للكود وإن لم تفهمه أخبرني أين الإشكال
int x; x = (int) rnd.next(1,16)
أشكرك اخي على كل شي
بس ده المثال كما قلت يكون مصفوفة من 15 عنصر كل عنصر مكون من رقمين
انا اريد تكوين عناصر مكونه من 15 خانه يعني مثلا
123987654342567
انا جربت الكود التالي بس يولد ارقام بطول اقل 10 او 11
Random RD = new Random();
int b = RD.Next() * 10^ 14;
السلام عليكم ورحمة الله وبركاته
لقد لفت انتباهي موضوعكم هذا حيت تذكرت هاجسي عندما كنت في سنه اولى في كلية المجتمع - صنعاء وهو توليد 14 رقما عشوائيا كما في كروت الدفع المسبق لشركات الإتصالات ومن ثم تطوير البرنامج لكي يستطيع محاكاة الطرف الآخر، اعتقد بانني اتتمت عملية توليد الأرقام العشوائية لكن كان ذلك بلغة السي.
ارجو المعذرة على ما سلف ،لكنني حاولت ان ان اشارككم الموضوع حيث قمت بعمل تطبيق بلغة الس شارب يقوم بتوليد ارقام عشوائية حسب مدى تحدده بنفسك تستطيع ايظا توليد 14 خانه او اكثر اضافة الى استطاعتك تحديد عدد النتائج المرجوة .
لا اطيل عليكم التطبيق في المرفقات وان شاء الله تجدون فيه مبتغاكم .
ان شاء الله تدعو لنا فقط .
Ready To Help
نحن اليمانيون يا طه تطير بنا الى روابي العلا أرواح أنصارِ
اذا تذكرت عمارا ومبدأه فأفخر بنا اننا أحفاد عمارِ
بحثت عن سر السعادة جـــــــــاهدا فوجدت ذاك السر في تقواك
فليرضى عني الناس أو فليسخطوا انا لم أعد أأبى لغير رضـــاك
اللهم ارحم المسلمين والمسلمات المؤمنين والمؤمنات الأحياء منهم والأموات
اخوتي الكرام .. السلام عليكم ورحمة الله وبركاته..
ان المشكلة هنا ليست في الطريقة حيث انها سليمة 100% .. ولكن المشكلة هي في أن المتغيرات من نوع int لا تستوعب أكثر من 10 (او 11) خانة..
ولهذا انا انصح باستخدام انواع متغيرات تستوعب عدد ارقام أكثر مثل double :
double r1;
Random res1 = new Random();
r1=res1.NextDouble();
lebel1.Text=(r1*1000000000000000).ToString();
حيث أن lebel1 هنا ستأخذ قيمة عشوائية مكونة من 14 خانة وإذا اردت تغيير هذا الرقم فكل ما عليك فعله هو تغيير عدد الأصفار
لا أعلم ان كان حلي صحيحا فما انا الا مبتدئ
بسم الله الرحمن الرحيم
في البداية احيي الأخ Bin Laiid وبقية الأعضاء واتمنى ان بسمحو لي بالإضافة ولهم جزبل الشكر
اردت ان اضيف هذه الفكرة وهي التي استخدمتها في المثال
فإليكم الكود التالي
public void Randomize(double Min, double Max)
{
Random rd = new Random();
int j = 1;
while (j <= Aselwi)
{
double d = rd.NextDouble();
double f = Min + (Max - Min) * d;
double dr = Math.Round(f);
lsb.Items.Add(dr);
j++;
}
}ثلاحظون ان الداله Randomize تستقبل 2 باراميترز
الباراميتر الأول وهو Min والثاني Max اصغر رقم واكبر رقم نريد توليد ارقام عشوائية بينهما
عمل الدوارة (While loop ) هنا هو كم عدد الأرقام التي تريد توليدها حيث يعتبر 22999999999999 رقما بمعنى كم عدد النتائج المرجوة وليس كم عدد الخانات المكونه للرقم ونلاحظ ايظا المتغير Aselwi والذي يخزن فية عدد النتائج المرجوة حيث يستقبل قيمته من كمبو بكس
ثلاحظون ايظا
الدالة NextDouble وهي تعيد قيمة عشوائية من نوع Double هذه القبمة محصورة بين الصفر والواحد
الكود التالي هو فكرة السؤال
double f = Min + (Max - Min) * d;
حيث سنحصل من هذا الكود على عدد محصور بين اقل قيمة واكبر قيمه هذا العدد مضرب بالرقم العشوائي الناتج من الدالة NextDouble وهو ينتج في كل مرة مع اللوب
وطالما كانت الدالة NextDouble تعيد قيمة بين الصفر والواحد بالطبع سيكون الرقم المخزون في المتغير f ذو علامة عشرية ولهذا استخدمنا السطر التالي
double dr = Math.Round(f);
بعد ذلك قمنا بتخزين الرقم في المتغير dr ومن ثم اضاقتة الى list items
على العموم الكود موجود في التطبيق وقد أضفناهذه الملاحظة فقط للتوضيح
متمنيا ان اكون قد وفقت .
شاكرا لكم قراءة الموضوع .
READY TO HELP!
نحن اليمانيون يا طه تطير بنا الى روابي العلا أرواح أنصارِ
اذا تذكرت عمارا ومبدأه فأفخر بنا اننا أحفاد عمارِ
بحثت عن سر السعادة جـــــــــاهدا فوجدت ذاك السر في تقواك
فليرضى عني الناس أو فليسخطوا انا لم أعد أأبى لغير رضـــاك
اللهم ارحم المسلمين والمسلمات المؤمنين والمؤمنات الأحياء منهم والأموات
السلام عليكم
أخي طريقتك صحيحة ولكن لماذا لا نلجأ الى ماهو أبسط طالما هناك عدة حلول.
إسمحلي أن أقدم ملاحظة بسيطة حول الكود الذي قدمته
private void Form1_Load(object sender, EventArgs e)
{
int i;
for (i = 1; i <= 100000; i++)
{
comboBox1.Items.Add(i);
}
}100000 مرة!!! حاول تشغيل الملف التنفيذي بمفرده وستلاحظ أنه يستغرق مدة معينة قبل البدأ وذلك يعود للحلقة التي أضفتها في Form_Load
بإمكانك تعويضها ب numericUpDown وتحدد لها أكبر وأصغر عدد أو حتى textBoxليكتب المستعمل إختياره
طبعا هذه مجرد ملاحظة وبإمكانك تجاهلها
بسم الله الرحمن الرحيم
اخي العزيز Ben Laiid تحياتي لك
اخي انا لاحظت تاخر البرنامج وملاحظتك ماخوذة بعين الإعتبار .
شكرا جزيلا
وفقك الله
نحن اليمانيون يا طه تطير بنا الى روابي العلا أرواح أنصارِ
اذا تذكرت عمارا ومبدأه فأفخر بنا اننا أحفاد عمارِ
بحثت عن سر السعادة جـــــــــاهدا فوجدت ذاك السر في تقواك
فليرضى عني الناس أو فليسخطوا انا لم أعد أأبى لغير رضـــاك
اللهم ارحم المسلمين والمسلمات المؤمنين والمؤمنات الأحياء منهم والأموات
Please Look For This Answer , I hope it's will be Very Easy:
String [] myrndno=new String[100]; Random rnd=new Random(); for (byte i=0;i<=99;i++) for (byte j=0;j<=13;j++) myrndno=myrndno+convert.ToInt16(rnd.Next(0,10)); foreach (string s in myrndno) listbox1.Items.Add(s);
رائع أخي Ben_Laiid ..
أنا أعرف بل متيقن بأنك خبير C# وثقتي فيك كبيرة..
سلمت يدااااااااااك أخي حل ولا أحلى ..
بالتوفيق لك أخي .