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

बिंदुओं की जाँच करने का कार्यक्रम पायथन में उत्तल पतवार बना रहा है या नहीं

मान लीजिए कि हमारे पास बहुभुज के बाहरी बिंदु दक्षिणावर्त क्रम में हैं। हमें यह जांचना होगा कि ये बिंदु उत्तल पतवार बना रहे हैं या नहीं।

बिंदुओं की जाँच करने का कार्यक्रम पायथन में उत्तल पतवार बना रहा है या नहीं

इस आरेख से यह स्पष्ट है कि प्रत्येक तीन क्रमागत बिंदुओं के लिए आंतरिक कोण 180° से अधिक नहीं होता है। इसलिए यदि सभी कोण 180° से अधिक नहीं हैं तो बहुभुज उत्तल पतवार है।

तो, यदि इनपुट अंक की तरह है =[(3,4), (4,7),(7,8),(11,6),(12,3),(10,1),(5,2 )], तो आउटपुट ट्रू होगा।

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

  • n :=बिंदुओं का आकार
  • मैं के लिए 0 से लेकर अंकों के आकार तक, करें
    • p1 :=अंक[i-2] जब i> 1, अन्यथा अंक[n-2]
    • p2 :=पॉइंट्स[i-2] जब i> 0, अन्यथा पॉइंट्स[n-1]
    • p3:=अंक[i]
    • यदि बिंदुओं के बीच का कोण (p1, p2, p3)> 180, तो
      • झूठी वापसी
  • सही लौटें

उदाहरण

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

import math
def get_angle(a, b, c):
   angle = math.degrees(math.atan2(c[1]-b[1], c[0]-b[0]) - math.atan2(a[1]-b[1], a[0]-b[0]))
   return angle + 360 if angle < 0 else angle

def solve(points):
   n = len(points)
   for i in range(len(points)):
      p1 = points[i-2]
      p2 = points[i-1]
      p3 = points[i]
      if get_angle(p1, p2, p3) > 180:
         return False
   return True

points = [(3,4), (4,7),(7,8),(11,6),(12,3),(10,1),(5,2)]
print(solve(points))

इनपुट

[(3,4), (4,7),(7,8),(11,6),(12,3),(10,1),(5,2)]

आउटपुट

True

  1. ढेर की जाँच करने का कार्यक्रम पायथन में अधिकतम ढेर बना रहा है या नहीं

    मान लीजिए कि हमारे पास ढेर के पेड़ का प्रतिनिधित्व करने वाली एक सूची है। जैसा कि हम जानते हैं कि हीप एक पूर्ण बाइनरी ट्री है। हमें यह जांचना है कि तत्व अधिकतम ढेर बना रहे हैं या नहीं। जैसा कि हम जानते हैं कि अधिकतम ढेर के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है। इसलिए, यदि इनपुट nums =[

  1. स्ट्रिंग्स की जाँच करने का कार्यक्रम पायथन में एक दूसरे के घूर्णन हैं या नहीं

    मान लीजिए कि हमारे पास दो अंग्रेजी स्ट्रिंग्स s और t हैं, वे लोअरकेस और/या अपरकेस में हो सकते हैं। हमें यह जांचना होगा कि एक दूसरे का घूर्णन है या नहीं। इसलिए, यदि इनपुट s =koLKAta t =KAtakoL जैसा है, तो आउटपुट सही होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यदि s का आकार t के आकार के स

  1. बिंदुओं की जाँच करने के लिए प्रोग्राम अवतल बहुभुज बना रहे हैं या नहीं पायथन में

    मान लीजिए कि हमारे पास बहुभुज के बाहरी बिंदु दक्षिणावर्त क्रम में हैं। हमें यह जांचना है कि ये बिंदु उत्तल बहुभुज बना रहे हैं या नहीं। एक बहुभुज को अवतल कहा जाता है यदि उसका कोई एक आंतरिक कोण 180° से अधिक हो। इस आरेख से यह स्पष्ट है कि सीडीई को छोड़कर प्रत्येक तीन क्रमागत बिंदुओं के लिए आंतरिक को