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

पायथन में 3D आकृतियों का पृष्ठीय क्षेत्रफल

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

तो, यदि इनपुट [[1,2],[3,4]] जैसा है, तो आउटपुट 34 होगा।

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

  • adjacentArea() फ़ंक्शन परिभाषित करें। यह row लेगा
  • area := 0
  • i को 0 से row के आकार - 1 तक रेंज में, करें
    • यदि row[i] और row[i + 1] शून्येतर हैं, तो
      • area := area + 2 * row[i], row[i+1] का न्यूनतम
  • area लौटाएं
  • मुख्य मेथड से निम्न करें -
  • z := 2 * (प्रत्येक row में row में value i के योग का योग)
  • x_plus_y := ग्रिड में सभी तत्वों का योग * 4
  • x_adjacent := ग्रिड में सभी row के लिए adjacentArea(row) का योग
  • y_adjacent := ग्रिड में सभी कॉलम के लिए adjacentArea(row) का योग
  • z + (x_plus_y - x_adjacent - y_adjacent) लौटाएं

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

उदाहरण

class Solution:
    def surfaceArea(self, grid):
        def adjacentArea(row):
            area = 0
            for i in range(len(row) - 1):
                if row[i] and row[i + 1]:
                    area += 2 * min(row[i], row[i+1])
            return area
        z = sum([sum(i > 0 for i in row) for row in grid]) * 2
        x_plus_y = sum([sum(row) for row in grid]) * 4
        x_adjacent = sum([adjacentArea(row) for row in grid])
        y_adjacent = sum([adjacentArea(row) for row in zip(*grid)])
        return z + (x_plus_y - x_adjacent - y_adjacent)

ob = Solution()
print(ob.surfaceArea([[1, 2], [3, 4]]))

इनपुट

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

आउटपुट

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

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

  1. पायथन में सबसे बड़े त्रिकोण का क्षेत्रफल पायथन में सबसे बड़े त्रिकोण का क्षेत्रफल

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

  1. पायथन प्रोग्राम: चतुष्फलक (Tetrahedron) का क्षेत्रफल ज्ञात करें पायथन प्रोग्राम: चतुष्फलक (Tetrahedron) का क्षेत्रफल ज्ञात करें

    इस लेख में, हम दी गई समस्या के समाधान और दृष्टिकोण के बारे में जानेंगे।समस्या कथन - एक चतुष्फलक की भुजा दी गई है, हमें चतुष्फलक का क्षेत्रफल ज्ञात करना होगा।एक चतुष्फलक एक ज्यामितीय आकृति है जो त्रिकोणीय आधार वाले पिरामिड जैसा दिखता है। यह चार त्रिकोणीय फलकों वाला एक ठोस वस्तु है, तीन किनारों पर, एक