के साथ एकल सरल समीकरण का समाधान सेट गणना करने के लिए मैं प्रपत्र का एक सरल समीकरण है मान लीजिए। यह एकमात्र समीकरण है जो हमें दिया जाता है। संभावित समाधानों में हमें समाधान (एक्स, वाई) की आवश्यकता है जिसमें एक्स सबसे छोटा है। जैसेएल्गोरिथ्म दो चर
7x + 4y = 14, then (2, 0) is the solution
7x + 4y = 15, then (1, 2) is the solution
7x + 4y = 32, then (4, 1) and (0, 8) are the possible solutions,
of which (0, 8) is the correct solution
मैं कम से कम संभव समय में इसे गणना करने के लिए एक एल्गोरिदम तैयार करना चाहता हूं। वर्तमान एल्गोरिथ्म जो मैं मन में है कुछ इस तरह चला जाता है:
Given an input n
Calculate max(x) = n/7
for i = 0 to max(x)
If the equation 7*i + 4*y = n holds
return value of i and y
else
continue
इस एल्गोरिथ्म, मुझे लगता है, सबसे ज्यादा मामले व्यवहार में तक हे (एन) के एक चलने का समय हो सकता है। क्या समाधान की गणना करने के लिए कुछ बेहतर एल्गोरिदम है?
आप कहते हैं 'अगर समीकरण 7 * i + 4 * y = n धारण करता है' मैं आपको लूप से मिलता हूं लेकिन y क्या है? – msam
क्या एक्स और वाई पर ऊपरी सीमा है? यदि हां, तो बाइनरी सफलता के लिए अपना रास्ता खोजें। –
आप [रैखिक पूर्णांक प्रोग्रामिंग] (http://en.wikipedia.org/wiki/Linear_programming#Integral_linear_programs) के बारे में पढ़ना चाहेंगे। आपकी समस्या निश्चित रूप से सामान्यीकृत समस्या का एक विशिष्ट उदाहरण है, लेकिन यदि आप जिस सरलीकृत समस्या का सामना कर रहे हैं, उसके लिए एक कुशल समाधान है तो मैं उत्सुक हूं। – amit