Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでの3D形状の表面積


N x Nグリッドがあるとすると、1 x 1x1の立方体を配置します。初期化。ここで、各値についてv =grid [i] [j]は、グリッドセル(i、j)の上に配置されたvキューブのタワーを表します。結果として得られる形状の総表面積を見つける必要があります。

したがって、入力が[[1,2]、[3,4]]の場合、出力は34になります。

これを解決するには、次の手順に従います-

  • 関数隣接領域()を定義します。これは列になります
  • 面積:=0
  • 0から行のサイズ-1までの範囲のiの場合、実行します
    • row[i]およびrow[i+ 1]がゼロ以外の場合、
      • area:=area + 2 *最小の行[i]、行[i + 1]
  • リターンエリア
  • メインメソッドから次の手順を実行します-
  • z:=2 *(グリッド内のすべての行の(行内の値iの合計)の合計)
  • x_plus_y:=グリッド内のすべての要素の合計* 4
  • x_adjacent:=グリッド内のすべての行の隣接領域(行)の合計
  • y_adjacent:=グリッド内のすべての列の隣接領域(行)の合計
  • return 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で最大の三角形の領域

    平面上の点のリストがあるとします。 3つの点で形成できる最大の三角形の領域を見つける必要があります。 したがって、入力が[[0,0]、[0,1]、[1,0]、[0,2]、[2,0]]の場合、出力は2になります。 これを解決するには、次の手順に従います- res:=0 N:=ポイントリストのサイズ 0からN-2の範囲のiの場合、do i +1からN-1の範囲のjの場合、do i + 2からNの範囲のkについては、 (x1、y1):=points [i]、 (x2、y2):=points [j]、 (x3、y3):=ポイント[k] res:=resの最大値、0.5 *

  2. 四面体の面積を計算するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −四面体の側面を考えると、四面体を見つける必要があります。 四面体は、三角形の底面を持つピラミッドのように見える幾何学的図形です。これは、4つの三角形の面、側面に3つ、ベースの下部に1つ、頂点またはコーナーが4つあるソリッドオブジェクトです。 ここでは、以下に示すようにエリア関数をフレーム化します- 例 import math def areatetrahedron(side):    return (math.sqrt(3) * (side * side)) #