الموضوع
:
سؤال لأهل البرمجة والكمبيوتر
عرض مشاركة واحدة
08-25-2010, 02:18 PM
#
1
Haroon
الملف الشخصي
شكراً: 1,093
تم شكره 8,001 مرة في 1,575 مشاركة
سؤال لأهل البرمجة والكمبيوتر
سؤال
لنفرض أنه عندي x من الأرقام (مثلاً من 1 إلى 50)، ما هو اللوغارثم الأفضل والأقصر لأخذ 5 أرقام منها بصورة عشوائية بحيث لا يكون هناك عندنا أي رقم مكرر، مثلاً: 4، 45، 27، 9، 32
هذا سؤال لمحمد نور، وعبد الكريم والبلعسي...
يوجد حل ولكنني لست مقتنعاً بأنه الأفضل وهو:
عمل array من خمسة خانات
array(4)
أخذ رقم عشوائي من 1 الى 50 ونضعه في ال array
عمل loop من 1 الى 4 وفي داخله نعمل
random.next (1,51)
نفحص عن طريق bool فإن كان رقم الراندم غير موجود في الarray فإننا نقوم بإضافتها لها، وبخلاف ذلك نعيد عمل الراندوم، وهكذا حتى نصل الى خمسة أرقام...
ربما هذه العملية ممتازة ولا بأس بها في مثالنا أعلاه وربما ستأخذ 1 من عشرة ملايين من الثانية في الكمبيوتر، ولكن ماذا لو أردنا مثلاً أخذ رقماً كبيراً من الأرقام (أي ليس فقط 5 أرقام)، كلما زادت الأرقام كلما ضاعف هذا من إحتمالية أن يكون الرقم في ال array، أليس كذلك؟؟؟
هل يوجد عندكم يا فقهاء أي حل عبقري؟
أريد كوداً فعلاً يكون الأقل وطأة على الكمبيوتر...
توقيـع »
Haroon
انقر هنا لزيارتي في ريوكاي
الأعضاء الذين قالوا شكراً لـ Haroon على المشاركة المفيدة:
カリム
Haroon
مشاهدة ملفه الشخصي
زيارة موقع Haroon المفضل
البحث عن المشاركات التي كتبها Haroon