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

जांचें कि दिए गए उत्पाद के साथ एक जोड़ी सी ++ में मैट्रिक्स में मौजूद है या नहीं

हमारे पास ऑर्डर एन एक्स एम का एक मैट्रिक्स है और एक उत्पाद के। कार्य यह जांचना है कि दिए गए उत्पाद के साथ एक जोड़ी मैट्रिक्स में मौजूद है या नहीं।

मान लीजिए कि एक मैट्रिक्स नीचे जैसा है -

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

अब यदि K 42 है, तो एक जोड़ी है जैसे (6, 7)

इस समस्या को हल करने के लिए, हम हैशिंग का उपयोग करेंगे। हम मैट्रिक्स के सभी तत्वों को लेकर हैश टेबल बनाएंगे। हम मैट्रिक्स को ट्रैवर्स करना शुरू करेंगे, ट्रैवर्सिंग करते समय, जांचें कि क्या मैट्रिक्स का वर्तमान तत्व दिए गए उत्पाद से विभाज्य है, और जब उत्पाद K को वर्तमान तत्व से विभाजित किया जाता है, तो लाभांश भी हैश तालिका में मौजूद होगा। तो आवश्यक शर्त इस प्रकार है -

(k mod matrix[i, n]) गलत है, और हैश तालिका में k/matrix[i, j]

है

यदि मौजूद है, तो सही लौटें, अन्यथा वर्तमान तत्व को हैश तालिका में डालें।

अगर कोई जोड़ा नहीं मिला है, तो झूठी वापसी करें।

उदाहरण

#include <iostream>
#include <unordered_set>
#define N 4
#define M 4
using namespace std;
bool isPairPresent(int matrix[N][M], int K) {
   unordered_set<int> s;
   for (int i = 0; i < N; i++) {
      for (int j = 0; j < M; j++) {
         if ((K % matrix[i][j] == 0) && (s.find(K / matrix[i][j]) != s.end())) {
            return true;
         } else {
            s.insert(matrix[i][j]);
         }
      }
   }
   return false;
}
int main() {
   int matrix[N][M] = {{1, 2, 3, 4},
      {5, 6, 7, 8},
      {9, 10, 11, 12},
      {13, 14, 15, 16}};
      int k = 42;
   if (isPairPresent(matrix, k) == false)
      cout << "NO PAIR EXIST";
   else
      cout << "Pair is present";
}

आउटपुट

Pair is present

  1. जांचें कि दिया गया मैट्रिक्स सी ++ में स्पैस है या नहीं

    यहां हम देखेंगे कि कैसे जांचा जाए कि मैट्रिक्स विरल है या नहीं। एक विरल मैट्रिक्स एक मैट्रिक्स है जहां अधिकांश तत्व 0 हैं। एक विरल मैट्रिक्स की परिभाषा है, यदि तत्वों का 2/3 भाग 0 है, तो मैट्रिक्स को एक विरल मैट्रिक्स के रूप में दर्शाया जाता है। यहाँ एक विरल मैट्रिक्स का उदाहरण दिया गया है। इसे ज

  1. सी++ में मैट्रिक्स सममित है या नहीं यह जांचने के लिए प्रोग्राम

    रैखिक बीजगणित में एक मैट्रिक्स M[][] को एक सममित मैट्रिक्स कहा जाता है यदि और केवल तभी जब मैट्रिक्स का स्थानान्तरण मैट्रिक्स के बराबर हो। मैट्रिक्स का ट्रांसपोज़ तब होता है जब हम मैट्रिक्स को उसके विकर्ण पर फ़्लिप करते हैं, जिसके परिणामस्वरूप मैट्रिक्स की पंक्ति और कॉलम इंडेक्स स्विच हो जाते हैं। स

  1. C++ में idempotent मैट्रिक्स की जांच करने का कार्यक्रम

    एक मैट्रिक्स दिया गया है M[r][c], r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को दर्शाता है जैसे कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें यह जांचना है कि दिया गया वर्ग मैट्रिक्स एक बेकार मैट्रिक्स . है या नहीं या नहीं। बेकार मैट्रिक्स एक मैट्रिक्स M को बेवकूफ मैट्रिक्स . कहा जाता है य