কম্পিউটার

পাইথনে একটি 3D চিত্রের সারফেস এরিয়া খুঁজুন


ধরুন আমাদের একটি N*M ম্যাট্রিক্স A আছে, এটি 3D চিত্রের উপস্থাপনা। বিন্দুতে বিল্ডিংয়ের উচ্চতা (i, j) হল A[i][j]। আমাদের চিত্রটির পৃষ্ঠের ক্ষেত্রফল খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি হয় N =3, M =3, A =[[1, 4, 5],[3, 3, 4],[1, 3, 5]], তাহলে আউটপুট হবে 72।

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

  • res :=0

  • i 0 থেকে N রেঞ্জের জন্য, করুন

    • 0 থেকে M রেঞ্জে j এর জন্য, করুন

      • up_side :=0

      • left_side :=0

      • যদি আমি> 0, তাহলে

        • up_side :=অ্যারে[i - 1, j]

      • যদি j> 0, তাহলে

        • left_side :=অ্যারে[i, j - 1]

      • res :=res + |অ্যারে[i][j] - up_side| + |অ্যারে[i][j] - left_side|

      • যদি আমি N - 1 এর মত হয়, তাহলে

        • res :=res + অ্যারে[i, j]

      • যদি j M - 1 এর মত হয়, তাহলে

        • res :=res + অ্যারে[i, j]

  • res :=res + N * M * 2

  • রিটার্ন রিটার্ন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

M = 3
N = 3
def get_surface_area(array):
   res = 0
   for i in range(N):
      for j in range(M):
         up_side = 0
         left_side = 0
         if (i > 0):
            up_side = array[i - 1][j]
         if (j > 0):
            left_side = array[i][j - 1]
         res += abs(array[i][j] - up_side)+abs(array[i][j] - left_side)
         if (i == N - 1):
            res += array[i][j]
         if (j == M - 1):
            res += array[i][j]
   res += N * M * 2
   return res
array = [[1, 4, 5],[3, 3, 4],[1, 3, 5]]
print(get_surface_area(array))

ইনপুট

[[1, 4, 5],[3, 3, 4],[1, 3, 5]]

আউটপুট

72

  1. পাইথনের ম্যাটপ্লটলিবে একটি গোলকের পৃষ্ঠে প্লটিং পয়েন্ট

  2. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  3. একটি ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে পাইথন প্রোগ্রাম

  4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম