কম্পিউটার

জাভাতে সমস্ত ব্যক্তি X-এর মোট লাভ সর্বাধিক করুন


আমাদেরকে 5টি পূর্ণসংখ্যার ভেরিয়েবল দেওয়া হয়েছে Num, P1, P2, profit_P1, profit_P2 এবং কাজ হল লাভ সর্বাধিক করা এবং [1, Num] এর পরিসরের সমস্ত প্রাকৃতিক সংখ্যা থেকে। এখানে পদ্ধতিটি হল যে যদি একটি ধনাত্মক সংখ্যা P1 দ্বারা বিভাজ্য হয় তবে মুনাফা লাভ_P1 দ্বারা বৃদ্ধি পায় এবং একইভাবে যদি পরিসরের সংখ্যাটি P2 দ্বারা বিভাজ্য হয় তাহলে লাভ_P2 এর লাভের পরিমাণ বৃদ্ধি পায়। এছাড়াও, একটি ধনাত্মক পূর্ণসংখ্যা থেকে লাভ সর্বাধিক একবারে যোগ করা যেতে পারে।

উদাহরণ দিয়ে বোঝা যাক:-

ইনপুট − int num =4, P1 =6, P2 =2, profit_P1 =8, profit_P2 =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টি পূর্ণসংখ্যার ভেরিয়েবল দেওয়া হয়েছে যার মধ্যে রয়েছে ধনাত্মক সংখ্যার পরিসর (সংখ্যা), P1 যা প্রথম ব্যক্তিকে চিত্রিত করে, P2 দ্বিতীয় ব্যক্তিকে চিত্রিত করে, লাভ_P1 যা ব্যক্তি 1-এর লাভের সাথে সাদৃশ্যপূর্ণ (অর্থাৎ যদি প্রদত্ত সংখ্যা পরিসরে সংখ্যাটি হয় P1 লাভ_P1 বৃদ্ধি দ্বারা বিভাজ্য), এবং একইভাবে লাভ_P2।

  • মূল ফাংশনের অভ্যন্তরে একটি পদ্ধতি বলা হয় (লাভ সর্বাধিকীকরণ) যা সমস্ত গণনার জন্য ইউটিলিটি পদ্ধতি।

  • ফাংশনের অভ্যন্তরে দেখা যায় যে প্রতিটি সংখ্যা যা P1 এবং P2 উভয় দিয়েই বিভাজ্য শুধুমাত্র যদি সংখ্যাটি P1 বা P2 এর LCM এর গুণিতক হয়। এছাড়াও এটিকে সেই সংখ্যা দিয়ে ভাগ করতে হবে যা বেশি লাভ দেয়।

  • সুতরাং এখানে এটি লাভ_P1 * (সংখ্যা / P1) + লাভ_P2 * (সংখ্যা / P2) - মিন(লাভ_P1, লাভ_P2) * (সংখ্যা / lcm(P1, P2)) দ্বারা গণনা করা হয় .

  • প্রদত্ত সংখ্যার lcm গণনা করার জন্য CalculateGcd() একটি পদ্ধতি চালু করা হয়েছে।

  • চূড়ান্ত আউটপুট মূল পদ্ধতিতে ক্যাপচার করা হয় এবং আউটপুট হিসাবে ব্যবহারকারীর কাছে প্রদর্শিত হয়।

উদাহরণ

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. একটি ডিরেক্টরির সমস্ত ফাইল পুনরাবৃত্তভাবে মুছে ফেলার জন্য জাভা প্রোগ্রাম (শুধুমাত্র ফাইল)

  2. কিভাবে আমরা জাভাতে একটি JFrame এর সর্বাধিক বোতামটি নিষ্ক্রিয় করতে পারি?

  3. জাভাতে জাভা সুইং এর আর্কিটেকচার ব্যাখ্যা কর?

  4. অবজেক্ট ক্লাস কেন জাভাতে সমস্ত ক্লাসের জন্য সুপার ক্লাস?