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

C++ में संख्या रेखा पर देखे गए अलग-अलग बिंदुओं की गणना करें

हमें 0 और 1 का बाइनरी क्रम दिया गया है। यह भी मान लें कि कोई व्यक्ति current_pos में संग्रहीत स्थिति या बिंदु पर बैठा है। अब current_pos से शुरू करते हुए, यदि बाइनरी अनुक्रम में 0 है तो एक कदम शेष है ( current_pos - 1)। यदि यह 1 है तो वह एक कदम दाएं (current_pos + 1) चलता है। लक्ष्य पूरे बाइनरी अनुक्रम के पूरा होने के बाद अलग-अलग पदों या बिंदुओं को खोजना है।

हम इसे एक बिंदु पर जाने की संख्या का उपयोग करके हल करेंगे। अगर आवृत्ति शून्य नहीं है, तो अलग-अलग बिंदुओं की संख्या बढ़ाएं।

इनपुट

Path[]= “001100” current_pos=3

आउटपुट

Distinct points visited on number line: 3

स्पष्टीकरण - पथ [0] और स्थिति 3 से शुरू होकर 3.

Path[0]: 0 → move left ...currpos=2
Path[1]: 0 → move left ...currpos=1
Path[2]: 1 → move right ...currpos=2
Path[3]: 1 → move left ...currpos=3
Path[4]: 0 → move left ...currpos=2
Path[5]: 0 → move left ...currpos=1

कुल विशिष्ट स्थान 3 हैं, जो 1,2,3 हैं

इनपुट

Path[]= “010101” current_pos=5

आउटपुट

Distinct points visited on number line: 2

स्पष्टीकरण - पथ [0] और स्थिति 5 से शुरू होकर 5.

Path[0]: 0 → move left ...currpos=4
Path[1]: 1 → move right ...currpos=5
Path[2]: 0 → move left ...currpos=4
Path[3]: 1 → move right ...currpos=5
Path[4]: 0 → move left ...currpos=4
Path[5]: 1 → move right ...currpos=5

कुल विशिष्ट स्थान 2 हैं, जो 4 और 5 हैं

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

  • 0 और 1 की स्ट्रिंग को पथ में संग्रहीत किया जाता है।

  • Current_pos शुरुआती बिंदु को स्टोर करता है।

  • फ़ंक्शन getDistinctPoints(int current_pos, string path) वर्तमान स्थिति और पथ इनपुट लेता है और अलग-अलग पदों/बिंदुओं की गिनती देता है।

  • परिवर्तनीय लेन पथ की लंबाई संग्रहीत करता है।

  • ऐरे फ़्रीक्वेंसी [21] का उपयोग फ़्रीक्वेंसी को उस बिंदु पर जितनी बार देखा जाता है, उतनी बार स्टोर करने के लिए किया जाता है। सूचकांक बिंदु का प्रतिनिधित्व करता है। कुल 0-20.

  • पथ स्ट्रिंग को पार करना प्रारंभ करें।

  • यदि वर्तमान मान 0 है, तो बाईं ओर जाएँ ( current_pos -1 )। इस पॉइंटफ़्रीक्वेंसी [current_pos]++ की आवृत्ति अपडेट करें।

  • अन्यथा वर्तमान मान 1 है, दाएं ले जाएं ( current_pos +1 )। इस पॉइंटफ़्रीक्वेंसी [current_pos]++ की आवृत्ति अपडेट करें।

  • अब आवृत्ति सरणी को पार करें और प्रत्येक गैर शून्य मान के लिए। गिनती बढ़ाएँ।

  • गणना में विशिष्ट विज़िट किए गए बिंदु शामिल हैं।

  • इच्छित परिणाम के रूप में वापसी गणना।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//distict points visited between 0 to 20
int getDistinctPoints(int current_pos, string path){
   // Length of path
   int len = path.length();
   int count=0;
   // Array to store number of times a point is visited
   int frequency[21]={0};
   // For all the directions in path
   for (int i = 0; i < len; i++) {
      //for left direction
      if (path[i] == '0') {
         current_pos--;
         frequency[current_pos]++; //increase visit count
      }
      // If the direction is right
      else {
         current_pos++;
         frequency[current_pos]++; //increase visit count
      }
   }
   for(int i=0;i<21;i++)
      if(frequency[i]!=0) // if visted then frequency[i] is non zero
         count++;
   return count;
}
int main(){
   int current_pos = 3;
   string path = "011101100";
   cout << "Count of distinct points visited on the number line:<<(getDistinctPoints(current_pos, path));
   return 0;
}

आउटपुट

Count of distinct points visited on the number line :5

  1. सी ++ का उपयोग कर ओपनसीवी में फ्रेम की कुल संख्या की गणना कैसे करें?

    हम सीखेंगे कि OpenCV में फ़्रेम की कुल संख्या की गणना कैसे करें। ओपनसीवी का उपयोग करते हुए, वीडियो के फ्रेम की कुल संख्या को गिनना और दिखाना प्राथमिक है। हालाँकि, आपको एक बात ध्यान में रखनी होगी कि हम वास्तविक समय के वीडियो फ्रेम की कुल संख्या की गणना नहीं कर सकते। क्योंकि रीयल-टाइम वीडियो में निश्च

  1. उन नोड्स की गणना करें जिनका योग X के साथ C++ में एक फाइबोनैचि संख्या है

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ

  1. C++ में एक चाल में बिशप द्वारा देखे जा सकने वाले वर्गों की कुल संख्या की गणना करें

    एक शतरंज की बिसात पर जिसे 8 X 8 ग्रिड के रूप में दर्शाया गया है, हमें पंक्ति और स्तंभ स्थिति के रूप में बिशप का स्थान दिया गया है। लक्ष्य उन वर्गों की कुल संख्या का पता लगाना है जो बिशप एक चाल में देख सकते हैं। हम जानते हैं कि बिशप सभी दिशाओं में घूम सकता है (तिरछे बाएँ ऊपर/नीचे और दाएँ ऊपर/नीचे)।