Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में मिरर रिफ्लेक्शन


मान लीजिए एक विशेष वर्ग कमरा है जिसकी चारों दीवारों पर दर्पण लगे हैं। दक्षिण-पश्चिम कोने को छोड़कर प्रत्येक कोने में रिसेप्टर्स हैं। इन्हें 0, 1, और 2 के रूप में संख्यांकित किया गया है। अब वर्ग कमरे की दीवारों की लंबाई p है, और दक्षिण-पश्चिम कोने से एक लेजर किरण पूर्वी दीवार पर 0th रिसेप्टर से दूरी q पर पहली बार मिलती है। हमें उस रिसेप्टर की संख्या ढूंढनी है जिससे किरण पहली बार मिलती है।

तो यदि p = 2, और q = 1, तो मामला इस तरह होगा -

C++ में मिरर रिफ्लेक्शन

तो आउटपुट 2 होगा, क्योंकि किरण पहली बार बाएं दीवार पर वापस रिफ्लेक्ट होने पर रिसेप्टर 2 से मिलती है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • जब तक p और q दोनों सम हैं,
    • p := p/2
    • q := q / 2
  • यदि p सम है, तो 2 लौटाएं
  • यदि q सम है, तो 0 लौटाएं
  • 1 लौटाएं।

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int mirrorReflection(int p, int q) {
        while(p % 2 == 0 && q % 2 == 0){
            p >>= 1;
            q >>= 1;
        }
        if(p % 2 == 0) return 2;
        if(q % 2 == 0) return 0;
        return 1;
    }
};

main(){
    Solution ob;
    cout << (ob.mirrorReflection(2, 1));
}

इनपुट

2 1

आउटपुट

2

  1. C++ में बाइनरी ट्री में दिए गए नोड का मिरर ढूंढना C++ में बाइनरी ट्री में दिए गए नोड का मिरर ढूंढना

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है। हमारा कार्य बाइनरी ट्री में दिए गए नोड का मिरर ढूंढना है। हमें एक नोड दिया जाएगा, और उस नोड का मिरर इमेज विपरीत सबट्री में ढूंढना होगा।आइए एक उदाहरण से समस्या को समझते हैं,इनपुटआउटपुटmirror of B is E.समाधान दृष्टिकोणसमस्या को हल करने का एक सरल समाधान

  1. C++ में 2-D तल में एक बिंदु का मिरर इमेज ढूंढना C++ में 2-D तल में एक बिंदु का मिरर इमेज ढूंढना

    इस समस्या में, हमें 2-D तल में एक बिंदु P और समीकरण ax + by + c = 0 के बिंदु a, b, c दिए जाते हैं। हमारा कार्य 2-D तल में एक बिंदु का मिरर इमेज ढूंढना है।आइए एक उदाहरण से समस्या को समझते हैं,इनपुटP = (2, 1), a = 1, b = -1, c = 0आउटपुट(1, 2)व्याख्यातल इस तरह दिखता है,समाधान दृष्टिकोणसमस्या को हल करने

  1. C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें

    समस्या विवरण मान लीजिए हमारे पास 2D तल पर n बिंदु हैं, हमें जांचना है कि क्या y-अक्ष के समानांतर कोई रेखा है जो दिए गए बिंदुओं को सममित रूप से प्रतिबिंबित करती है, दूसरे शब्दों में, जांचें कि क्या कोई ऐसी रेखा मौजूद है जो सभी बिंदुओं को दी गई रेखा पर प्रतिबिंबित करने के बाद मूल बिंदुओं का समुच्चय प