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

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

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

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

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

  • आसन्न क्षेत्र() फ़ंक्शन को परिभाषित करें। यह पंक्ति लेगा
  • क्षेत्र :=0
  • i के लिए 0 से लेकर पंक्ति के आकार -1 तक के लिए
    • यदि पंक्ति[i] और पंक्ति[i + 1] शून्य नहीं है, तो
      • क्षेत्र :=क्षेत्र + 2 * न्यूनतम पंक्ति[i], पंक्ति[i+1]
  • वापसी क्षेत्र
  • मुख्य विधि से निम्न कार्य करें -
  • z :=2* (ग्रिड में सभी पंक्तियों के लिए (पंक्ति में मान का योग) का योग)
  • x_plus_y :=ग्रिड में सभी तत्वों का योग * 4
  • x_adjacent :=ग्रिड में सभी पंक्तियों के लिए आसन्न क्षेत्र (पंक्ति) का योग
  • y_adjacent :=ग्रिड में सभी कॉलम के लिए आसन्न क्षेत्र (पंक्ति) का योग
  • रिटर्न 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. 3डी आकृतियों का प्रोजेक्शन क्षेत्र

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

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

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

  1. एक टेट्राहेड्रोन के क्षेत्र की गणना करने के लिए पायथन कार्यक्रम

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