कथन − दिए गए वज़न का उपयोग करके बैलेंस पैन जो किसी संख्या की घात है।
DESCRIPTION - इस समस्या में हमें एक पैन आधारित तौल मशीन दी जाती है। हमें एक भार T और कुछ अन्य भार दिए गए हैं जिनका मान एक संख्या a. . की घात है हमें दिए गए वज़न का उपयोग करके पैन को संतुलित करने की आवश्यकता है।
अब, इसके आधार पर हमारे पास यह समीकरण है,
T + (a की कुछ शक्ति) =(a की कुछ अन्य शक्ति)
अब, हमें यह याद रखना चाहिए कि शक्ति मान के अनुरूप ठीक एक भार होता है।
उदाहरण,
T = 12 : a = 4
नीचे दिए गए मानों का उपयोग करके, हम वज़न को इस प्रकार संतुलित कर सकते हैं,
12 + 4 = 16
अब, हम इस समस्या को हल करते हैं, हमें T को a के घात में निरूपित करने की आवश्यकता है। इसके लिए हम T के आधार को आधार 10 से a में बदल देंगे
केस 1 - आधार बदलने पर, यदि प्रतिनिधित्व के मूल्य में केवल 1 और 0 हैं। फिर 1 के भार का उपयोग योगात्मक रूप से T का मान बनाने के लिए किया जा सकता है।
आइए एक उदाहरण लेते हैं,
T = 10 : a = 3,
10 से 3 का आधार बदलने पर मान 101 हो जाता है।
तो 3 0 . का उपयोग करके वसीयत बनाई जाएगी और 3 2 (1 + 9) =10.
केस 2 - आधार बदलने पर, यदि प्रतिनिधित्व में केवल 1 और 0 के अलावा अन्य मान थे, तो संतुलन को करने के लिए कुछ और संचालन की आवश्यकता होती है। यहां, समाधान के लिए अनिवार्य शर्त यह है कि आधार रूपांतरण का अंकीय मान (a-1) होना चाहिए। इस मामले में, हम मूल्य की शक्ति को टी के डीड में स्थानांतरित कर देंगे। और आधार प्रतिनिधित्व में संख्या को 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