سؤال

ولدي مجموعة من [أنا] [ي]. العناصر هي شار، تفسر على أنها مجموعات فرعية من مجموعة {1، ...، 8} (وك عنصر في مجموعة فرعية إذا بت-ك ال هو 1). لا أعتقد أنها ذات الصلة، ولكن كل عنصر له مجموعة بالضبط 4 بت.

وكل صف [1] [ي] .. و[ن] [ي] هي عبارة عن مجموعة من مجموعات فرعية من {1، ...، 8}. ولست بحاجة لإزالة الصفوف المكررة، حيث تعتبر صفين مكررة إذا كان أحد يمكن الحصول عليها من البعض عن طريق التقليب من {1، ...، 8}.

مثال (0bxxxxxxxx يعني الرقم الثنائي):

0b11000000, 0b01100000, 0b00110000

وهو نسخة مكررة من

0b00110000, 0b00011000, 0b00100100

ولأن الأول يمكن الحصول عليها من هذا الأخير من خلال تطبيق التقليب

8->8, 7->7, 6->1, 5->4, 4->3, 3->2, 2->5, 1->6

ووإعادة ترتيب النتيجة.

لاعتبارات الأداء، ومجموعة تحتوي على حوالي 2000 الصفوف، تضم كل في معظم 20 عنصرا. وأمر كل صف بالفعل، وكذلك الصفوف من أجل زيادة lexicographic، إذا كان هذا قد يساعد. هو مكتوب بقية الخوارزمية في C، لذلك سيكون من المفضل حل C.

وشكرا لمساعدتكم.

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

المحلول

إذا كان جميع مجموعات فرعية 2 العناصر، وهذا من شأنه أن يمثل تشاكل المخططات أو مع مجموعات فرعية تمثل حواف الرسم البياني. هذا هو أكثر عموما (وبالتالي ربما أصعب)، ولذا فإنني سوف ننظر الاستدلال تستخدم لحل تشاكل المخططات ومعرفة ما إذا كانت تنطبق هنا.

وهناك الكثير من الاستدلال الرسم البياني-التماثل التي يمكن استبعاد بثمن بخس التماثل. لمجموعة معينة، يمكنك حساب عدد فرعية لا كل عنصر ينتمي إليه، ثم فرز ذلك. في المثال الخاص بك، فإن كل من المجموعات الحصول على [2،2،1،1،0،0،0،0]. إذا كان تسلسل فرزها لاثنين من مجموعات مختلفة، ثم لا يوجد أي التماثل. بالطبع المساواة لا يضمن أن يكون هناك.

وهناك العديد من الاستدلال أكثر مماثلة التي هي أفضل حتى في النخل من الرسوم البيانية غير المتماثلة (ويمكن ان تنطبق هنا).

وأيضا، 8! هو 40320 فقط، لذلك اضطر الغاشمة في جميع الأحوال ليس مجديا تماما.

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