سؤال

لدي مجموعة مثل أدناه

int[] array = new array[n];// n may be 2,3,4

مثال ل n = 4

int[] array = new array[4];

array[0] = 2;
array[1] = 4;
array[2] = 6;
array[3] = 8;

كيف أقوم بحساب جميع المزيج غير المرغوب فيه من هذه الصفيف دون استخدام LinQ قد يكون داخل؟

2,4,6,8
2,4,8,6
2,8,6,4
2,6,4,6
8,6,4,2
2,4,6,8
.......
.......
.......

هل كانت مفيدة؟

المحلول

هنا التنفيذ المرن جدا C # باستخدام المحاميين.

نصائح أخرى

حسنا، بالنظر إلى أنك تبحث عن جميع المجموعات غير المرغوبة، وهذا يعني أن هناك ن! هذه المجموعات ... (لذلك، في قضيتك، ن! = 4! = 24 مجموعات مثل هذه المجموعات).

كما أنا في منتصف نشر هذا، أشار داومينر إلى تنفيذ جيد.

فقط تحذير من أن الأمر ستحصل حقا على القيم الكبيرة من N (نظرا لأن هناك بتصارات N!

فكر في الحالتين المحتمين في العالم لمعرفة ما إذا كان هذا يلقي أي ضوء.

1) لا توجد أدوات في صفيفي (أي كل رقم في الصفيف فريد). في هذه الحالة، كم عدد ممكن التباديل هناك؟

2) هناك واحد dupe واحد في الصفيف. لذلك، من عدد التباديل الذي تحسبه في الجزء الأول، كم عدد مرات التكرارات فقط

هممم، دعنا نأخذ مجموعة من العناصر الثلاثة للبساطة

1،3،5 لديه عدد التباديل؟

1,3,5

1,5,3

3,1,5

3,5,1

5,1,3

5,3,1

لذلك ستة تصامح

الآن ماذا يحدث إذا غيرنا القائمة ليقول 1،5،5؟

نحن نحصل

1,5,5

5,1,5

5,5,1

سؤالي لك سيكون، كيف يمكنك التعبير عن هذا من خلال الحقائق؟

ربما حاول كتابة جميع التباديلات بمجموعة أربعة عناصر ومعرفة ما إذا كانت المصباح الكهربائي ينفجر؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top