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

3D आकृतियों का प्रक्षेपण क्षेत्रफल

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

तो, यदि इनपुट [[1,2],[3,4]] है

3D आकृतियों का प्रक्षेपण क्षेत्रफल

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

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

  • xy := 0, yz := 0, xz := 0
  • ग्रिड में प्रत्येक row इंडेक्स r और row के लिए, करें
    • yz := yz + row का अधिकतम
    • row में प्रत्येक कॉलम इंडेक्स c और कॉलम col के लिए, करें
      • यदि grid[r][c] > 0 शून्येतर है, तो
        • xy := xy + 1
    • ग्रिड में प्रत्येक col के लिए, करें
      • xz := xz + col का अधिकतम
  • 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++ में आयत क्षेत्रफल गणना C++ में आयत क्षेत्रफल गणना

    मान लीजिए हम 2D तल में दो समकोणीय आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ढूंढना चाहते हैं। प्रत्येक आयत को उसके निचले बाएं कोने और ऊपरी दाएं कोने द्वारा परिभाषित किया जाता है।हल करने के चरण= H या D <= F, तो(C - A) * (D - B) + (G - E) * (H - F) वापस करेंएक सरणी h परिभाषित करें, इसमें A, C, E, G डाल

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

    मान लीजिए हमारे पास एक 2D तल पर एक साधारण बहुभुज के अंतिम बिंदुओं को दर्शाने वाले क्रमबद्ध बिंदुओं की सूची है। हमें इस बहुभुज का क्षेत्रफल ढूंढना है।उदाहरण के लिए, यदि इनपुट points = [(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 := बिंदुओं की सूची का आकार i को 0 से N-2 तक लूप करें: j क