কম্পিউটার

পাইথনে 3D আকারের সারফেস এরিয়া


ধরুন একটি N x N গ্রিড আছে, আমরা কিছু 1 x 1 x 1 কিউব রাখি। এটা. এখন প্রতিটি মানের জন্য v =গ্রিড[i][j] গ্রিড কক্ষের (i, j) উপরে স্থাপন করা v কিউবের একটি টাওয়ারকে প্রতিনিধিত্ব করে। আমাদের ফলস্বরূপ আকারগুলির মোট পৃষ্ঠের ক্ষেত্রফল খুঁজে বের করতে হবে৷

সুতরাং, ইনপুট যদি [[1,2],[3,4]] এর মত হয়, তাহলে আউটপুট হবে 34।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • সংলগ্ন এলাকা() একটি ফাংশন সংজ্ঞায়িত করুন। এটি সারি নেবে
  • এরিয়া :=0
  • আমি 0 থেকে সারির আকার - 1 এর মধ্যে, কর
    • যদি সারি[i] এবং সারি [i + 1] অ-শূন্য হয়, তাহলে
      • ক্ষেত্রফল :=এলাকা + 2 * সর্বনিম্ন সারি[i], সারি[i+1]
  • রিটার্ন এলাকা
  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -
  • z :=2* (গ্রিডের সমস্ত সারির জন্য সমষ্টি (সারিতে i মানের সমষ্টি)
  • 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. Python - PyGame উইন্ডোতে বিভিন্ন আকার আঁকা

  2. 3D আকারের অভিক্ষেপ এলাকা

  3. পাইথনের বৃহত্তম ত্রিভুজ এলাকা

  4. টেট্রাহেড্রনের ক্ষেত্রফল গণনা করার জন্য পাইথন প্রোগ্রাম