Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में सभी व्यक्तियों X के कुल लाभ को अधिकतम करें

हमें 5 पूर्णांक चर संख्या, P1, P2, लाभ_P1, लाभ_P2 दिए गए हैं और कार्य लाभ को अधिकतम करना है और सभी प्राकृतिक संख्याओं से [1, संख्या] की सीमा में है। यहाँ दृष्टिकोण यह है कि यदि कोई धनात्मक संख्या P1 से विभाज्य है तो लाभ लाभ_P1 से बढ़ता है और इसी प्रकार यदि श्रेणी में संख्या P2 से विभाज्य है तो लाभ_P2 का लाभ मार्जिन बढ़ जाता है। साथ ही, एक धनात्मक पूर्णांक से लाभ को अधिकतम एक बार जोड़ा जा सकता है।

उदाहरण के साथ समझते हैं:-

इनपुट - पूर्णांक संख्या =4, पी1 =6, पी2 =2, लाभ_पी1 =8, लाभ_पी2 =2;

आउटपुट - सभी व्यक्तियों के कुल लाभ को अधिकतम करें X 4

स्पष्टीकरण −यहां हमारे पास 1 से 4 तक की संख्या है([1,Num(4)])

श्रृंखला में कोई भी संख्या P1 से विभाज्य नहीं है

1 और 2, P2 से विभाज्य है

2*2=4 . का लाभ पाने के लिए 1 और 2, P2 से विभाज्य है

इनपुट − संख्या =3, P1 =1, P2 =2, लाभ_P1 =3, लाभ_P2 =4

आउटपुट - सभी व्यक्तियों के कुल लाभ को अधिकतम करें X 10

स्पष्टीकरण − 1, 2 और 3 A से विभाज्य हैं।

2 दी गई श्रेणी में एकमात्र संख्या है जो B से विभाज्य है।

2, A और B दोनों से विभाज्य है।

2 * 3 =6 का लाभ प्राप्त करने के लिए 1 और 3 को A से विभाजित किया जा सकता है

1 * 4 =4 का लाभ प्राप्त करने के लिए 2 को B से विभाजित किया जा सकता है

2 दोनों से विभाज्य है लेकिन लाभ को अधिकतम करने के लिए इसे A के बजाय B से विभाजित किया जाता है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है -

  • हमें 6 पूर्णांक चर के साथ दिया गया है जिसमें सकारात्मक संख्या श्रेणी (संख्या) शामिल है, पी 1 जो पहले व्यक्ति को दर्शाता है, पी 2 दूसरे व्यक्ति को दर्शाता है, लाभ_पी 1 जो व्यक्ति 1 के लाभ जैसा दिखता है (यानी यदि दी गई संख्या सीमा में संख्या है P1 से विभाज्य है लाभ_P1 बढ़ जाता है), और इसी तरह लाभ_P2।

  • मुख्य फ़ंक्शन के अंदर एक विधि को (लाभ अधिकतमकरण) कहा जाता है जो सभी गणनाओं के लिए उपयोगिता विधि है।

  • फ़ंक्शन के अंदर यह देखा जा सकता है कि प्रत्येक संख्या जो P1 और P2 दोनों के साथ विभाज्य है, यदि संख्या P1 या P2 में से किसी एक के LCM का गुणज है। साथ ही इसे उस संख्या से विभाजित किया जाना चाहिए जो अधिक लाभ देती है।

  • तो यहां इसकी गणना लाभकारी_P1 * (संख्या / P1) + लाभ_P2 * (संख्या / P2) - मिनट (लाभ_P1, लाभ_P2) * (संख्या / lcm(P1, P2)) द्वारा की जाती है ।

  • दिए गए नंबरों के एलसीएम की गणना करने के लिए एक विधि कैलकुलेट जीसीडी () पेश की गई है।

  • अंतिम आउटपुट मुख्य विधि में कैप्चर किया जाता है और उपयोगकर्ता को आउटपुट के रूप में प्रदर्शित किया जाता है।

उदाहरण

public class testClass{
   static int CalculateGcd(int n1, int n2){
      if (n2 == 0)
         return n1;
      return CalculateGcd(n2, n1 % n2);
   }
   static int profitMaximisation(int n, int a, int b, int x, int y){
      int result = x * (n / a);
      result += y * (n / b);
      result -= Math.min(x, y) * (n / ((a * b) / CalculateGcd(a, b)));
      return result;
   }
   public static void main(String[] args){
      int num = 6, P1 = 6, P2 = 2, profit_P1 = 8, profit_P2 = 2;
      System.out.println("Maximize the total profit of all the persons X "+profitMaximisation(num, P1, P2, profit_P1, profit_P2));
   }
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Maximize the total profit of all the persons X 12

  1. एक निर्देशिका में सभी फ़ाइलों को पुनरावर्ती रूप से हटाने के लिए जावा प्रोग्राम (केवल फ़ाइलें)

    मान लें कि हमारे पास निर्देशिका डी में उदाहरण निर्देशिका नामक एक फ़ोल्डर है जिसमें 7 फाइलें और 2 निर्देशिकाएं हैं - कहां, sampleDirectory1 में दो फ़ाइलें होती हैं जिनका नाम SampleFile1.txt और sampleFile2.txt है। sampleDirectory2 में दो फ़ाइलें होती हैं जिनका नाम SampleFile2.txt और sampleFil

  1. हम जावा में जेएफआरएएम के अधिकतम बटन को कैसे अक्षम कर सकते हैं?

    A JFrame javax से एक वर्ग है। स्विंग पैकेज और यह java.awt.frame . का विस्तार कर सकता है कक्षा। यह एक शीर्ष-स्तरीय विंडो . है एक सीमा और एक शीर्षक पट्टी के साथ। एक JFrame कक्षा में कई विधियाँ हैं जिनका उपयोग इसे अनुकूलित करने के लिए किया जा सकता है। JFrame . का आकार सेट करने के बाद हम अभी भी कोनो

  1. जावा में जावा स्विंग की वास्तुकला के बारे में बताएं?

    जावा स्विंग एपीआई का एक सेट है जो एक ग्राफिकल यूजर इंटरफेस प्रदान करता है (जीयूआई ) जावा कार्यक्रमों के लिए। जावा स्विंग को पहले के एपीआई के आधार पर विकसित किया गया था जिसे एब्सट्रैक्ट विंडोज टूल . कहा जाता है यह (एडब्ल्यूटी)। जावा स्विंग AWT की तुलना में अधिक समृद्ध और अधिक परिष्कृत GUI घटक प्रदान