Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C . में एक बिंदु से गुजरने वाली अधिकतम भिन्न रेखाएँ


हमें प्रत्येक पंक्ति के लिए संख्या N और दो बिंदुओं (x1,y1) और (x2,y2) के निर्देशांक दिए गए हैं। लक्ष्य दी गई रेखाओं से उन रेखाओं की अधिकतम संख्या ज्ञात करना है जो एक बिंदु से होकर गुजर सकती हैं जैसे कि कोई भी दो रेखाएँ एक दूसरे को कवर नहीं करती हैं, और कोई रोटेशन नहीं किया जाता है।

हम (m,c) की जोड़ी के रूप में रेखाओं का प्रतिनिधित्व करेंगे जहां y=mx+c और m ढलान है m=y2-y1/x2-x1

समान m वाली रेखाएँ समानांतर दी गई हैं c1!=c2। हम अलग-अलग ढलानों (एम) की गणना करेंगे। लंबवत रेखाओं के लिए यदि x1=x2, ढलान =INT_MAX अन्यथा मी.

आइए हम एक उदाहरण से समझते हैं।

इनपुट

Line 1 (x1,y1)=(4,10) (x2,y2)=(2,2)
Line 2 (x1,y1)=(2,2) (x2,y2)=(1,1)

आउटपुट

Maximum lines: 2

स्पष्टीकरण − कुल रेखाएं 2 हैं। दोनों के ढलान अलग-अलग हैं।

इनपुट

Line 1 (x1,y1)=(1,5) (x2,y2)=(3,2)
Line 2 (x1,y1)=(2,7) (x2,y2)=(2,8)

आउटपुट

Maximum lines: 2

स्पष्टीकरण − कुल रेखाएं 2 हैं। दोनों के ढलान अलग-अलग हैं।

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

  • पूर्णांक सरणी x1[] और x2[] का उपयोग बिंदुओं के निर्देशांक को रेखाओं पर संग्रहीत करने के लिए किया जाता है।

  • फ़ंक्शन numLines(int x1[],int y1[], int x2[], int y2[]) एक बिंदु से गुजरने वाली रेखाओं की संख्या की गणना कर रहा है।

  • ढलान की गणना करने के लिए x1[],y1[],x2[],y2[] में प्रत्येक बिंदु के लिए सूत्र लागू करना और k का उपयोग करके ढलानों की संख्या में वृद्धि करना।

  • Array s[] ढलानों के मान को संग्रहीत करता है।

  • परिणाम में पंक्तियों की संख्या के रूप में k लौटाएं।

उदाहरण

#include <stdio.h>
int numLines(int n, int x1[], int y1[], int x2[], int y2[]){
   double s[10];
   int k=0;
   double slope;
   for (int i = 0; i < n; ++i) {
      if (x1[i] == x2[i])
         slope = 999;
      else
         slope = (y2[i] - y1[i]) * 1.0 / (x2[i] - x1[i]) * 1.0;
         s[k++]=slope;
   }
   return k;
}
int main(){
   int n = 2;
   int x1[] = { 1, 5 }, y1[] = { 3, 2 };
   int x2[] = { 2,7 }, y2[] = { 2, 8 };
   printf("Maximum lines: %d", numLines(n, x1, y1, x2, y2));
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Maximum distinct lines passing through a single point : 2

  1. सी प्रोग्राम में एक सरणी में अधिकतम और मूल्य के साथ प्रिंट जोड़ी।

    समस्या के अनुसार हमें n धनात्मक पूर्णांकों की एक सरणी दी जाती है, हमें सरणी से अधिकतम और मान वाला एक युग्म खोजना होता है। उदाहरण Input: arr[] = { 4, 8, 12, 16 } Output: pair = 8 12 The maximum and value= 8 Input:arr[] = { 4, 8, 16, 2 } Output: pair = No possible AND The maximum and value = 0 अधिकत

  1. सी प्रोग्राम में दिए गए आकार के अधिकतम योग वर्ग उप-मैट्रिक्स को प्रिंट करें।

    NxN के एक मैट्रिक्स को देखते हुए MxM का एक उप-मैट्रिक्स खोजें जहाँ M=1 ऐसा है कि मैट्रिक्स MxM के सभी तत्वों का योग अधिकतम है। मैट्रिक्स NxN के इनपुट में शून्य, धनात्मक और ऋणात्मक पूर्णांक मान हो सकते हैं। उदाहरण Input:    {{1, 1, 1, 1, 1},    {2, 2, 2, 2, 2},    {3,

  1. एक बिंदु से गुजरने वाली क्षैतिज और लंबवत रेखाएं प्लॉट करें जो Matplotlib में दो रेखाओं का चौराहे बिंदु है

    एक बिंदु से गुजरने वाली क्षैतिज और लंबवत रेखाओं को प्लॉट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। ढलान (m1, m2) और इंटरसेप्ट (c1 और c2) का उपयोग करके दो लाइनें बनाएं। ढलानों को प्रारंभ करें और मूल्यों को इंटरसेप्ट करें। nump