اذهب إلى المحتوى
  • 0

حل مشكلة تكرار نفس العدد العشوائي في random number in cpp

Mohammed Hhhh

السؤال

السلام عليكم ورحمة الله وبركاته 

الآن هنا لدي مشكله في هذا البرنامج 

اريد مع كل لوب يعمله ال for-loop يتغير ال random - number  فــ ما هو الخطأ الذي لدي في هذا الكود

#include <iostream>

using namespace std;

int main(){

    int a;
    int list_of_random_numbers[4];
    for (int s = 0; s <= 3; s++) {

        srand(time(0));
        a = rand() % 3;
        list_of_random_numbers[s] = a;
        cout << "random number --> " << list_of_random_numbers[s]; 
        cout << endl;

    }

    return 0;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

  • الحل هو نقل srand لقبل الحلقة فيتم تهيئته مرة واحدة
  • مجالك للأعداد صغير بطول 3 لذلك تكرار قيمة منه احتماله عال..
#include <iostream>

using namespace std;

int main(){

    int a;
    int list_of_random_numbers[4];
    srand(time(0));
    for (int s = 0; s <= 10; s++) {

        a = rand() % 100;
        cout << a ;
        list_of_random_numbers[s] = a;
       // cout << "random number --> " << list_of_random_numbers[s]; 
        cout << endl;

    }

    return 0;
}

النتيجة بحال توسعة المجالات وعدد الأعداد العشوائية التي يتم إنشائها.

67
0
93
66
13
41
93
27
93
94
36

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 6/23/2022 at 19:48 قال Wael Aljamal:

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

  • الحل هو نقل srand لقبل الحلقة فيتم تهيئته مرة واحدة
  • مجالك للأعداد صغير بطول 3 لذلك تكرار قيمة منه احتماله عال..

#include <iostream>

using namespace std;

int main(){

    int a;
    int list_of_random_numbers[4];
    srand(time(0));
    for (int s = 0; s <= 10; s++) {

        a = rand() % 100;
        cout << a ;
        list_of_random_numbers[s] = a;
       // cout << "random number --> " << list_of_random_numbers[s]; 
        cout << endl;

    }

    return 0;
}

النتيجة بحال توسعة المجالات وعدد الأعداد العشوائية التي يتم إنشائها.


67
0
93
66
13
41
93
27
93
94
36

 

السلام عليكم \

الكود لا يعمل لا اعلم ما هو السبب ثانيا انا اريد ان LOOP تلف 3 مرات و في هذه ال 3 مرات تعطيني 3 ارقام غير مرتبه من رقم  1 الى 3 بأستخدام ال RAND و شكرا 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 دقائق مضت قال Mohammmed Mahmoud:

السلام عليكم \

الكود لا يعمل لا اعلم ما هو السبب ثانيا انا اريد ان LOOP تلف 3 مرات و في هذه ال 3 مرات تعطيني 3 ارقام غير مرتبه من رقم  1 الى 3 بأستخدام ال RAND و شكرا 

الشيفرة المرفقة مجربة، وفي حال ظهر لك خطأ يمكنك إرفاقه، و ذكرت أنني قمت بتعديل المجال للارقام لتوضيح عملية الإنشاء العشوائي للقيم المختلفة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 7 دقائق مضت قال Wael Aljamal:

الشيفرة المرفقة مجربة، وفي حال ظهر لك خطأ يمكنك إرفاقه، و ذكرت أنني قمت بتعديل المجال للارقام لتوضيح عملية الإنشاء العشوائي للقيم المختلفة.

صحيح لقد اخطأت انا شيفرتكت صحيحه و لكن انا اريد ان تمر فقط بي 1  //  3 و اريد ان يلف اللوب فقط 3 لفات و شكرا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 18 دقائق مضت قال Mohammmed Mahmoud:

صحيح لقد اخطأت انا شيفرتكت صحيحه و لكن انا اريد ان تمر فقط بي 1  //  3 و اريد ان يلف اللوب فقط 3 لفات و شكرا

تمام، يمكنك تعديل القيم. مجال الحلقة و باقي القسمة بدل 100 ضع 3

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...