স্টেটমেন্ট - প্রদত্ত ওজন ব্যবহার করে ব্যালেন্স প্যানগুলি যা একটি সংখ্যার শক্তি।
বর্ণনা - এই সমস্যায় আমাদের একটি প্যান ভিত্তিক ওজনের মেশিন দেওয়া হয়েছে। আমাদের একটি ওজন T এবং কিছু অন্যান্য ওজন দেওয়া হয়েছে যার মানগুলি হল একটি সংখ্যার শক্তি a৷ আমাদের প্রদত্ত ওজন ব্যবহার করে প্যানগুলির ভারসাম্য বজায় রাখতে হবে।
এখন, এর উপর ভিত্তি করে আমাদের এই সমীকরণ আছে,
T + (a এর কিছু শক্তি) =(a এর কিছু শক্তি)
এখন, আমাদের মনে রাখা উচিত যে একটি পাওয়ার মানের সাথে সামঞ্জস্যপূর্ণ একটি ওজন আছে।
উদাহরণ,
T = 12 : a = 4
নীচের মানগুলি ব্যবহার করে, আমরা ওজনগুলিকে এইভাবে ভারসাম্য রাখতে পারি,
12 + 4 = 16
এখন, আমরা এই সমস্যাটি সমাধান করব আমাদের a-এর শক্তিতে T উপস্থাপন করতে হবে। এর জন্য আমরা বেস 10
থেকে T-এর বেস পরিবর্তন করবকেস 1 - ভিত্তি পরিবর্তন করার সময়, যদি উপস্থাপনার মানটিতে শুধুমাত্র 1 এবং 0 থাকে। তারপর 1 এর ওজনগুলিকে যোগ করে T এর মান তৈরি করতে ব্যবহার করা যেতে পারে।
একটি উদাহরণ নেওয়া যাক,
T = 10 : a = 3,
10 থেকে 3 এর ভিত্তি পরিবর্তন করলে মান 101 হয়ে যায়।
তাই উইলটি 3 0 ব্যবহার করে তৈরি করা হবে এবং 3 2 (1 + 9) =10।
কেস 2 − বেস পরিবর্তন করার সময়, যদি উপস্থাপনাটির শুধুমাত্র 1 এবং 0's ব্যতীত অন্য মান থাকে, তাহলে ভারসাম্য বজায় রাখার জন্য আরও কিছু অপারেশন করতে হবে। এখানে, সমাধানের জন্য বাধ্যতামূলক শর্ত হল বেস রূপান্তরের ডিজিট মান (a - 1) হওয়া উচিত। এই ক্ষেত্রে, আমরা T's dide-এ মানের পাওয়ার স্থানান্তর করব। এবং ভিত্তি প্রতিনিধিত্বের সংখ্যা 1 দ্বারা বৃদ্ধি করুন।
একটি উদাহরণ নেওয়া যাক,
T = 7 : a = 3
7 থেকে 3 এর বেস পরিবর্তন করলে আমরা 021 পাব।
3 1 স্থানান্তর করা হচ্ছে T-এর দিকে এবং অন্য দিকে 1 দ্বারা বৃদ্ধি করছি। আমরা সংখ্যা =10 পাই যা 101 হিসাবে উপস্থাপন করা হয় অর্থাৎ (9 + 1)। যা ভারসাম্যপূর্ণ হতে পারে।
উপরের ক্ষেত্রের উপর ভিত্তি করে আমরা এই সমস্যাটি সমাধান করার জন্য একটি প্রোগ্রাম তৈরি করব।
উদাহরণ
#include <bits/stdc++.h> using namespace std; bool isBalancePossible(int T, int a){ vector<int> baseForm; while (T) { baseForm.push_back(T % a); T /= a; } baseForm.push_back(0); for (int i = 0; i < baseForm.size(); i++) { if (baseForm[i] != 0 && baseForm[i] != 1 && baseForm[i] != (a - 1) && baseForm[i] != a) return false; if (baseForm[i] == a || baseForm[i] == (a - 1)) baseForm[i + 1] += 1; } return true; } int main(){ int T = 21; int a = 4; if (isBalancePossible(T, a)) cout << "Balance is possible" << endl; else cout << "Balance is not possible" << endl; return 0; }
আউটপুট
Balance is possible