मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जिसमें विभिन्न मानदंडों के आधार पर डेटा के दो सेटों से मिलान करने की आवश्यकता है, जिसमें प्रत्येक सेट से किसी भी आइटम की संख्या शामिल है । मैंने इस कथन को समस्या को दूर कर दिया है:संख्याओं के दो सेट दिए गए, प्रत्येक से सबसे छोटा सेट खोजें जहां योग बराबर है
वस्तुओं और लेन-देन के एक सेट को देखते हुए, आइटमों का सबसे छोटा सेट खोजें जहां राशि लेनदेन के सबसे छोटे सेट के बराबर होती है। (इस पोस्ट के लिए मुझे कुछ जटिलता दिखाई दे रही है, लेकिन अभी के लिए मैं केवल कुल मात्रा मिलान, तारीखों, विवरणों, समाशोधन मतभेदों आदि के बारे में चिंतित हूं)
या, गणितीय रूप से: संख्याओं के दो सेट दिए गए , प्रत्येक से सबसे छोटा सेट खोजें जहां रकम बराबर हैं।
अन्य समान SO प्रश्न जो मैंने पूरे किए हैं, मानते हैं कि आप समय से पहले राशि जानते हैं, या आप जिस सेट के लिए जा रहे हैं, उससे मात्रा को जानते हैं।
और यहां एक परीक्षण है जो (मुझे लगता है) दिखाता है कि मैं क्या कर रहा हूं।
[TestMethod]
public void StackOverflowTest()
{
var seta = new[]{10, 20, 30, 40, 50};
var setb = new[]{ 45, 45, 100, 200 };
var result = Magic(seta, setb);
Assert.AreEqual(new[]{40,50},result.SetA);
Assert.AreEqual(new[] { 45, 45 }, result.SetB);
}
class MagicResult
{
public int[] SetA { get; set; }
public int[] SetB { get; set; }
}
private MagicResult Magic(int[] seta, int[] setb)
{
throw new NotImplementedException();
}
मैं एक सुरुचिपूर्ण समाधान है कि इस पास कर देगा, लेकिन किसी भी स्यूडोकोड या सुझाव है कि मुझे वहाँ हो जाता है ले जाएगा के लिए देख रहा हूँ;)
एक परीक्षण विधि सहित के +1: अगर वहाँ एकाधिक सेट इस मापदंड से मेल कर रहे हैं डी –
है कि आप क्या करते हैं? साथ ही, क्या आप सबसे छोटे सेट को न्यूनतम संख्या में जोड़ना चाहते हैं? –
अंतिम एक :) - क्या 1 स्वीकार्य सेट है? –