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

पायथन में एक रेखा पर स्थित बिंदुओं की संख्या गिनने का कार्यक्रम

मान लीजिए हमारे पास निर्देशांक की एक सूची है। प्रत्येक निर्देशांक में दो मान x और y होते हैं, जो कार्तीय तल पर एक बिंदु का प्रतिनिधित्व करते हैं। अब किसी रेखा पर स्थित बिंदुओं की अधिकतम संख्या ज्ञात कीजिए।

इसलिए, यदि इनपुट निर्देशांक की तरह है =[[6, 2], [8, 3], [10, 4], [1, 1], [2, 2], [6, 6], [7, 7 ]], तो आउटपुट 4 होगा, क्योंकि बिंदु [1, 1], [2, 2], [6, 6], [7, 7]] हैं जो एक रेखा पर स्थित हैं।

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

  • रेस :=0

  • मेरे लिए 0 से लेकर अंक सूची के आकार तक, करें

    • (x1, y1) :=अंक[i]

    • ढलान :=एक नया नक्शा

    • वही :=1

    • j के लिए i + 1 से लेकर अंकों के आकार तक, करें

      • (x2, y2) :=अंक[j]

      • अगर x2, x1 के समान है, तो

        • ढलान [inf] :=1 + (ढलान [inf] अगर बाहर निकलता है तो 0)

      • अन्यथा जब x1, x2 के समान हो और y1 y2 के समान हो, तो

        • वही :=वही + 1

      • अन्यथा,

        • ढलान :=(y2 - y1) /(x2 - x1)

        • ढलान [ढलान] :=1 + (ढलान [ढलान] अगर बाहर निकलता है तो 0)

    • यदि ढलान खाली नहीं है, तो

      • रेस :=अधिकतम रेस और (समान + ढलानों के सभी मूल्यों की अधिकतम सूची)

  • रिटर्न रेस

उदाहरण

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

class Solution:
   def solve(self, points):
      res = 0
      for i in range(len(points)):
         x1, y1 = points[i][0], points[i][1]
         slopes = {}
         same = 1
         for j in range(i + 1, len(points)):
            x2, y2 = points[j][0], points[j][1]
            if x2 == x1:
               slopes[float("inf")] = slopes.get(float("inf"), 0) + 1
            elif x1 == x2 and y1 == y2:
               same += 1
            else:
               slope = (y2 - y1) / (x2 - x1)
               slopes[slope] = slopes.get(slope, 0) + 1
         if slopes:
            res = max(res, same + max(slopes.values()))
      return res
ob = Solution()
coordinates = [[6, 2],[8, 3],[10, 4],[1, 1],[2, 2],[6, 6],[7, 7]]
print(ob.solve(coordinates))

इनपुट

[[6, 2],[8, 3],[10, 4],[1, 1],[2, 2],[6, 6],[7, 7]]

आउटपुट

4

  1. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर

  1. पायथन में दिए गए किनारों को शामिल करने वाले अद्वितीय पथों की संख्या की गणना करने का कार्यक्रम

    मान लीजिए कि हमारे पास (u, v) के रूप में किनारों की एक सूची है और ये एक पेड़ का प्रतिनिधित्व कर रहे हैं। प्रत्येक किनारे के लिए हमें इनपुट में दिए गए क्रम में उसी क्रम में अद्वितीय पथों की कुल संख्या ज्ञात करनी होगी जिसमें उक्त किनारे शामिल हैं। इसलिए, यदि इनपुट किनारों की तरह है =[[0, 1],[0, 2],[1

  1. एक संख्या के भाज्य में अनुगामी शून्यों की गणना करने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक पूर्णांक n दिया गया है, हमें भाज्य में अनुगामी शून्यों की संख्या गिनने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # trailing zero def find(n):    # Initialize count &nb