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

3डी आकृतियों का प्रोजेक्शन क्षेत्र

मान लीजिए कि एक N x N ग्रिड है, हम कुछ 1 x 1 x 1 क्यूब रखते हैं जो x, y और z के साथ अक्ष-संरेखित हैं। यहां प्रत्येक मान v =ग्रिड [i] [j] ग्रिड सेल (i, j) के शीर्ष पर स्थित v क्यूब्स का एक टावर दिखा रहा है। हम इन घनों के प्रक्षेपण को xy, yz और zx तलों पर देखते हैं। यहां, हम ऊपर, सामने और साइड व्यू से क्यूब्स को देखते हुए प्रोजेक्शन देख रहे हैं। हमें तीनों अनुमानों का कुल क्षेत्रफल ज्ञात करना है।

तो, अगर इनपुट [[1,2],[3,4]]

. जैसा है

3डी आकृतियों का प्रोजेक्शन क्षेत्र

तो आउटपुट 17 होगा।

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

  • xy :=0, yz :=0, xz :=0
  • ग्रिड में प्रत्येक पंक्ति अनुक्रमणिका r और पंक्ति के लिए, करें
    • yz :=yz + अधिकतम पंक्ति
    • पंक्ति में प्रत्येक स्तंभ अनुक्रमणिका c और स्तंभ स्तंभ के लिए, करें
      • यदि ग्रिड[r][c]> 0 शून्य नहीं है, तो
        • xy :=xy + 1
    • ग्रिड में प्रत्येक कॉल के लिए, करें
      • xz :=xz + अधिकतम कॉलम
  • xy + yz + xz लौटाएं

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

उदाहरण

class Solution(object):
   def projectionArea(self, grid):
      xy = 0
      yz = 0
      xz = 0
      for r, row in enumerate(grid):
         yz += max(row)
         for c, col in enumerate(row):
            if grid[r][c] > 0:
               xy += 1
            for col in zip(*grid):
               xz += max(col)
      return xy + yz + xz
ob = Solution()
print(ob.projectionArea([[1,2],[3,4]]))

इनपुट

[[1,2],[3,4]]

आउटपुट

17

  1. C++ में आयत क्षेत्र

    मान लीजिए कि हम 2D समतल में दो आयताकार आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ज्ञात करना चाहते हैं। यहाँ प्रत्येक आयत को उसके निचले बाएँ कोने और ऊपरी दाएँ कोने से परिभाषित किया गया है जैसा कि चित्र में दिखाया गया है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - =एच या डी <=एफ, तो वापसी

  1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

  1. पायथन में सबसे बड़ा त्रिभुज क्षेत्र

    मान लीजिए कि हमारे पास एक विमान पर बिंदुओं की एक सूची है। हमें सबसे बड़े त्रिभुज का क्षेत्रफल ज्ञात करना है जो कि किसी भी 3 बिंदुओं से बन सकता है। इसलिए, यदि इनपुट [[0,0], [0,1], [1,0], [0,2], [2,0]] जैसा है, तो आउटपुट 2 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - res :=0 N :=अंक सूच