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

C++ में जांचें कि क्या यह एक सीधी रेखा है


मान लें हमारे पास (x, y) निर्देशांक वाले डेटा-पॉइंट्स की एक सूची है, हमें जांचना है कि डेटा-पॉइंट्स सीधी रेखा बना रहे हैं या नहीं। तो यदि बिंदु [(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7)] जैसे हैं, तो वे सीधी रेखा बना रहे हैं।

इसे हल करने के लिए, हम प्रत्येक क्रमागत डेटापॉइंट्स के बीच अंतर लेंगे, और ढलान ढूंढेंगे। पहले के लिए ढलान ढूंढें। अन्य सभी बिंदुओं के लिए जांचें कि ढलान समान है या नहीं। यदि वे समान हैं, तो बस true लौटाएं, अन्यथा false।

उदाहरण

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

#include <bits/stdc++.h> using namespace std; class Solution {    public:    int gcd(int a, int b){       return !b?a:gcd(b,a%b);    }    bool checkStraightLine(vector<vector<int>>& c) {       bool ans =true;       bool samex = true;       bool samey = true;       int a = c[1][0]-c[0][0];       int b = c[1][1]-c[0][1];       int cc = gcd(a,b);       a/=cc;       b/=cc;       for(int i =1;i<c.size();i++){          int x = c[i][0]-c[i-1][0];          int y = c[i][1]-c[i-1][1];          int z = gcd(x,y);          x/=z;          y/=z;          ans =ans &&(x == a )&& (y == b );       }       return ans;    } }; main(){ Solution ob; vector<vector<int>> c = {{1,2},{2,3},{3,4},{4,5},{5,6},{6,7}}; cout << ob.checkStraightLine(c); }

इनपुट

[[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]

आउटपुट

1 (1 indicates true)

  1. C++ में एक रेखा पर अधिकतम बिंदु C++ में एक रेखा पर अधिकतम बिंदु

    मान लीजिए हमारे पास एक 2D तल है। हमें उन अधिकतम बिंदुओं की संख्या ढूंढनी है जो एक ही सीधी रेखा पर स्थित हैं। तो यदि बिंदु इस तरह हैं -तो 4 बिंदु हैंइसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे -n := बिंदुओं की संख्या, यदि n < 3, तो n लौटाएंans := 2i को 1 से n - 1 तक की रेंज मेंcount := 0इं

  1. C++ में रेखा वृत्त को स्पर्श करती है, प्रतिच्छेद करती है या बाहर है जांचें C++ में रेखा वृत्त को स्पर्श करती है, प्रतिच्छेद करती है या बाहर है जांचें

    समस्या विवरण एक वृत्त (केंद्र h,k और त्रिज्या r) और रेखा (ax+by+c=0) दी गई है। जांचें कि रेखा वृत्त को स्पर्श करती है, प्रतिच्छेद करती है, या बाहर है। विधि केंद्र से रेखा की लंबवत दूरी P निकालें: P = |ah + bk + c| / √(a²+b²) P की त्रिज्या r से तुलना करें: r → बाहर P = r → स्पर्श करती है

  1. C++ में इडेम्पोटेंट मैट्रिक्स जांचें C++ में इडेम्पोटेंट मैट्रिक्स जांचें

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