البرمجة

تعبئة مصفوفة C# بأرقام عشوائية فريدة باستخدام حلول اللوب والشروط

عند النظر إلى الشيفرة التي قدمتها، يظهر أنك تقوم بملء مصفوفة بعشرة أعداد عشوائية متكررة، وهذا ليس ما تريده. إذا كنت ترغب في ملء المصفوفة بأعداد عشوائية وفريدة في نفس الوقت، يمكنك تعديل الشيفرة كما يلي:

csharp
int[] x = new int[10]; Random r = new Random(); int i; for (i = 0; i < x.Length; i++) { int randomNumber; bool isDuplicate; do { isDuplicate = false; randomNumber = r.Next(10); // Check if the random number already exists in the array for (int j = 0; j < i; j++) { if (x[j] == randomNumber) { isDuplicate = true; break; } } } while (isDuplicate); x[i] = randomNumber; Console.WriteLine("x[{0}] = {1}", i, x[i]); }

في هذا التعديل، قمت بإضافة دورة تكرارية (`do-while`) لضمان أن تكون الأرقام العشوائية فريدة. داخل الدورة، يتم توليد رقم عشوائي جديد وفحص ما إذا كان متكررًا في المصفوفة بالفعل. إذا كان كذلك، يتم إعادة توليد الرقم. يتكرر هذا العمل حتى يتم توليد رقم فريد في كل محاولة.

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

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

عند التعامل مع مصفوفات وتوليد أرقام عشوائية في لغة البرمجة C#، يجب أن نأخذ بعين الاعتبار عدة نواحي أخرى لضمان كفاءة الكود واستدامته. فيما يلي بعض المعلومات الإضافية التي قد تكون مفيدة:

  1. الأمان: يفضل دائمًا التحقق من الفهم الصحيح لطرق توليد الأرقام العشوائية وضمان عدم تسرب أي بيانات حساسة. يمكن استخدام مكتبة `System.Security.Cryptography` لتحسين أمان توليد الأرقام العشوائية.
  2. less
    <li><strong>الأداء:strong> تجنب استخدام دورة متكررة طويلة في حال كان حجم المصفوفة كبيرًا. يمكن أن يؤدي البحث عن تكرار الأرقام في كل دورة إلى تأخير أداء البرنامج. يمكنك استخدام هيكل البيانات مثل `HashSet` لتحسين سرعة البحث.li> <li><strong>معالجة الحالات الخاصة:strong> قد تحدث حالات استثنائية تتعلق بتكرار توليد الأرقام العشوائية. يجب أن يتم التعامل معها بشكل صحيح، ومثلاً، إذا كنت تحتاج إلى مصفوفة أكبر من المدى المستخدم لتوليد الأرقام العشوائية.li> <li><strong>تحسين الكود:strong> يمكن تحسين الكود بشكل إضافي باستخدام تقنيات البرمجة الوظيفية واللينة (LINQ) لتبسيط بعض العمليات كما في فلترة الأرقام المتكررة.li>

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

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