البرمجة

توليد أرقام عشوائية زوجية بين الحدود مع استبعاد قيم محددة في JavaScript

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

في الكود المقدم، يمكن إجراء التعديلات التالية:

javascript
function getrandomnumber(min, max, notthis) { var num = min + 2 * Math.floor(((max - min) / 2) * Math.random()); // ضمن النطاق العشوائي للأعداد الزوجية فقط var j = notthis.split(',').map(Number).indexOf(num.toString()); // تحويل النص إلى مصفوفة من الأرقام والتحقق مما إذا كانت القيمة مستبعدة while (j !== -1) { num = min + 2 * Math.floor(((max - min) / 2) * Math.random()); // إعادة توليد إذا كانت القيمة مستبعدة j = notthis.split(',').map(Number).indexOf(num.toString()); } return num; } var a = getrandomnumber(0, 100, "0,10,20"); document.write(a);

تم استخدام قوسين مربعين لتحديد نطاق الأعداد الزوجية، وذلك باستخدام 2 * Math.floor(((max - min) / 2) * Math.random()). كما تم تحويل القيم المستبعدة من نص إلى مصفوفة من الأرقام باستخدام split(',').map(Number)، ومن ثم استخدام indexOf للتحقق من وجود القيمة في المصفوفة.

المزيد من المعلومات

تعد الدالة المقدمة getrandomnumber ملائمة لتوليد أرقام عشوائية في نطاق معين، وذلك بتحديد قيمة الحد الأدنى min والحد الأقصى max. كما يتم استبعاد أي قيم قد تكون محددة في المصفوفة notthis.

لفهم الدالة بشكل أكبر، يمكننا فحص الخطوات التي تمر بها الأكواد:

  1. توليد رقم عشوائي:
    الدالة تبدأ بتوليد رقم عشوائي داخل النطاق بين min و max باستخدام Math.random() وتعيينه إلى num.

  2. التحقق من الاستبعاد:
    يتم التحقق من وجود القيمة المستبعدة في المصفوفة notthis باستخدام indexOf، وذلك عبر تحويل النص إلى مصفوفة من الأرقام.

  3. التكرار في حالة الاستبعاد:
    في حالة وجود القيمة في المصفوفة، يتم توليد رقم جديد والتحقق مرة أخرى حتى يتم الحصول على رقم غير مستبعد.

  4. إرجاع الرقم:
    بمجرد الحصول على رقم غير مستبعد، يتم إرجاعه من الدالة.

من الجدير بالذكر أنه يُفضل دائمًا أن تكون الدوال قابلة لإعادة الاستخدام، ولذلك يمكن أن يتم تحسين الكود عن طريق إضافة معامل افتراضي لقائمة الاستبعاد notthis في حال عدم توفرها، وكذلك التحقق من صحة الحدود min و max لضمان أنها قيم صحيحة.

زر الذهاب إلى الأعلى