مصفوفة الأعداد العشوائية

إذا كانت عملية randomInt التي كتبتها صحيحة، عندئذ فإن كل قيمة تنتمي إلى المجال من low إلى high-1 يجب أن تملك نفس الاحتمال. إذا ولدّت سلسلة طويلة من الأرقام، فيجب أن تظهر كل قيمة، تقريباً على الأقل، بنفس العدد من المرات.
إحدى الطرق لاختبار عمليتك هي توليد عدد كبير من القيم العشوائية، وتخزينهم في مصفوفة، وحساب عدد مرات تكرار كل قيمة.
تأخذ العملية التالية متحولاً وحيداً، حجم المصفوفة. وتحجز مصفوفة أعداد صحيحة جديدة، وتملأها بقيم صحيحة عشوائية، وتعيد مرجعاً للمصفوفة الجديدة.
كود:
public static int[] randomArray(int n) {
   int[] a = new int[n];
   for (int i = 0; i<a.length; i++) {
      a[i] = randomInt(0, 100);
   }
   return a;
}
نوع الإرجاع هو int[]، ما يعني أن هذه العملية تعيد مصفوفة أعداد صحيحة. لاختبار هذه العملية، سنحتاج إلى عملية تطبع محتويات مصفوفة.
كود:
public static void printArray(int[] a) {
   for (int i = 0; i<a.length; i++) {
      System.out.println(a[i]);
   }
}
الشفرة التالية تولد مصفوفة ما وتطبعها:
كود:
int numValues = 8;
int[] array = randomArray(numValues);
printArray(array);
كان الخرج على جهازي كالتالي
27
6
54
62
54
2
44
81
وهو يبدو عشوائي قليلاً. قد تختلف النتائج على جهازك.
لو كانت هذه علامات امتحان (لكانت علامات امتحان سيئة فعلاً) لربما قام المدرس بتمثيل هذه النتائج وتقديمها إلى الفصل بشكل مخطط أعمدة (histogram)، وهو مجموعة من العدادات التي تتابع عدد تكرار كل قيمة من القيم الموجودة.
بالنسبة لعلامات الامتحان، لربما جعلنا العدادات تحسب عدد الطلاب الذين كانت علاماتهم في التسعينات، الثمانينات، الخ. سنطوّر في الأقسام القليلة القادمة شفرة لتوليد مخطط أعمدة.


lk ;jhf ;dt jt;v ;uhgl ;lfd,jv gyi [hth hgtwg hgehkd uav hglwt,thj : lwt,tm hgHu]h] hgua,hzdm gyi hglwt,thj hgHu]h] hgehkd hgua,hzdm hgtag jt;v [hth uav ;lfd,jv ;jhf ;dt