2010-07-27 15 views
5

पर आधारित लोगों के समूह को निर्धारित करने के लिए मैं एक एल्गोरिदम लिखने का प्रयास कर रहा हूं जो लोगों के समूह को उनके 'स्कोर' के आधार पर बनाता है। एक व्यक्ति के दो परमिटर्स, एक नाम और स्कोर होता है। (स्कोर की सीमा -10 और 10 के बीच है लेकिन यह वास्तव में प्रासंगिक नहीं है) मैं समान संख्या वाले लोगों के साथ समूह बनाना चाहता हूं (यदि संभव हो तो लोगों की संख्या के आधार पर) जहां समूह के सदस्यों का औसत स्कोर है वही (या उसके बहुत करीब)।सी # एल्गोरिदम मूल्य

उदाहरण के लिए:

समूह 1 (औसत स्कोर = 2) - जॉन डो, स्कोर 2 - जेन डो, स्कोर 7 - जैक ब्लैक, स्कोर -3

समूह 2 (औसत स्कोर = 2) - बॉबी Flay, स्कोर 4 - कैरी पृष्ठ, स्कोर -3 - लीनुस Tarval, स्कोर 5

+0

कितने समूह? इसके अलावा, आपके पास कितने लोग होंगे? – IVlad

+0

समूहों की संख्या अनंत है, लेकिन उपयोगकर्ताओं की संख्या हमेशा उपयोगकर्ता द्वारा चुनी जाएगी। प्रति समूह लोगों की संख्या उपयोगकर्ता द्वारा भी प्रदान की जाएगी। –

उत्तर

2

यह शास्त्रीय Partition Problem की भिन्नता है, जो एनपी हार्ड है की तरह बदबू आ रही है हालांकि कुछ heuristics ई xists। आप विकिपीडिया पेज पर लूट ले सकते हैं .. शायद आपके मामले में एक लालची दृष्टिकोण काम करेगा।

आपको एक विशिष्ट व्यक्ति को रखने के लिए सही समूह चुनकर अपने समूहों को भरने का प्रयास करना चाहिए, शायद स्कोर द्वारा आदेश देने के साथ।

+0

धन्यवाद जैक, "लालची दृष्टिकोण" इस एप्लिकेशन के लिए काफी अच्छा काम करता है। –

संबंधित मुद्दे