أرقام عشوائية بدون تكرارات

صياغة المشكلة

لنفترض أننا بحاجة إلى إنشاء مجموعة من الأرقام العشوائية الصحيحة بدون تكرار في نطاق معين من القيم. أمثلة أثناء التنقل:

  • إنشاء رموز عشوائية فريدة للمنتجات أو المستخدمين
  • تعيين الأشخاص للمهام (كل واحدة بشكل عشوائي من القائمة)
  • تبديل الكلمات في استعلام البحث (hello seo-shnikam)
  • لعب لوتو إلخ.

الطريقة 1. بسيطة

بادئ ذي بدء ، دعنا نفكر في خيار بسيط: نحتاج إلى الحصول على مجموعة عشوائية من 10 أعداد صحيحة من 1 إلى 10. باستخدام الوظيفة المضمنة في Excel بين القضية (حافة بين) التفرد غير مضمون. إذا قمت بإدخالها في خلية ورقة ونسخها لأسفل 10 خلايا ، فيمكن أن يحدث التكرار بسهولة:

أرقام عشوائية بدون تكرارات

لذلك ، سنذهب في الاتجاه الآخر.

جميع إصدارات Excel لها وظيفة RANK (رن)، مخصص للترتيب أو ، بعبارة أخرى ، تحديد الموضع العلوي لرقم في مجموعة. أكبر رقم في القائمة له رتبة = 1 ، والثاني في الأعلى له رتبة = 2 ، وهكذا دواليك.

دعنا ندخل الوظيفة في الخلية A2 SLCHIS (راند) بدون وسيطات وانسخ الصيغة إلى أسفل 10 خلايا. ستولد لنا هذه الوظيفة مجموعة من 10 أرقام كسور عشوائية من 0 إلى 1:

أرقام عشوائية بدون تكرارات

في العمود التالي نقدم الوظيفة RANKلتحديد المركز في الترتيب لكل رقم عشوائي تم استلامه:

أرقام عشوائية بدون تكرارات

نحصل في العمود B على ما أردناه - أي عدد مرغوب فيه من الأعداد الصحيحة العشوائية غير المتكررة من 1 إلى 10.

من الناحية النظرية البحتة ، قد تنشأ حالة عندما SLCHIS سوف يعطينا رقمين عشوائيين متطابقين في العمود A ، وسوف تتطابق رتبهما وسوف نحصل على تكرار في العمود B. ومع ذلك ، فإن احتمال مثل هذا السيناريو صغير للغاية ، نظرًا لحقيقة أن الدقة هي 15 منزلاً عشريًا.

الطريقة 2. معقدة

هذه الطريقة أكثر تعقيدًا بعض الشيء ، لكنها تستخدم صيغة صفيف واحدة فقط. لنفترض أننا بحاجة إلى إنشاء قائمة من 9 أعداد صحيحة عشوائية غير متكررة في النطاق من 1 إلى 50 على ورقة.

أدخل الصيغة التالية في الخلية A2 ، وانقر في النهاية كترل + شيفت + إنتر (لإدخالها كصيغة صفيف!) وانسخ الصيغة إلى عدد الخلايا المطلوب:

أرقام عشوائية بدون تكرارات

الطريقة الثالثة. ماكرو

وبالطبع يمكنك حل المشكلة باستخدام البرمجة في Visual Basic. في إحدى المقالات القديمة حول أخذ العينات العشوائية ، أشرت بالفعل إلى دالة ماكرو لوتو ، والتي تنتج العدد المطلوب من الأرقام العشوائية غير المتكررة من فترة زمنية معينة.

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

اترك تعليق