কম্পিউটার টিউটোরিয়াল

পাইথনে ৩D ফিগারের সারফেস এরিয়া বের করুন


সমস্যা বিবরণ

একটি N x M ম্যাট্রিক্স A দেওয়া আছে যা একটি ৩D ফিগার উপস্থাপন করে। পয়েন্ট (i, j)-এ বিল্ডিংয়ের উচ্চতা A[i][j]। এই ফিগারটির সারফেস এরিয়া বের করতে হবে।

উদাহরণস্বরূপ, N=3, M=3, A=[[1,4,5],[3,3,4],[1,3,5]] হলে আউটপুট হবে 72।

সমাধানের ধাপসমূহ

  1. res := 0।
  2. প্রতিটি সেল (i, j) এর জন্য:
    • up_side = A[i-1][j] যদি i>0, অন্যথায় ০।
    • left_side = A[i][j-1] যদি j>0, অন্যথায় ০।
    • res += abs(A[i][j] - up_side) + abs(A[i][j] - left_side)।
    • যদি i == N-1 হয়, res += A[i][j]।
    • যদি j == M-1 হয়, res += A[i][j]।
  3. res += N * M * 2 (উপর ও নিচের সারফেস)।
  4. res রিটার্ন করুন।

পাইথন কোড উদাহরণ

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))  # আউটপুট: 72

ইনপুট

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

আউটপুট

72
  1. পাইথনের Matplotlib-এ গোলকের পৃষ্ঠে পয়েন্ট প্লট করুন

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা

  4. পাইথনে অ্যারের যোগফল বের করা