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

Pythonで2つの長方形で覆われた総面積を見つけるプログラム


2D平面内の2つの直線状の長方形でカバーされる総面積を求めたいとします。ここで、各長方形は、図に示すように、左下隅と右上隅によって定義されます。

Pythonで2つの長方形で覆われた総面積を見つけるプログラム

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

  • width_1:=| C-A |、height_1:=| D-B |
  • width_2:=| G-E |、height_2:=| H-F |
  • area:=width_1 * height_1 + width_2 * height_2
  • (G C)または(F> D)または(H
  • リターンエリア
  • それ以外の場合、
    • p:=A、Eの最大値
    • q:=B、Fの最大値
    • r:=C、Gの最小値
    • s:=最小のD、H
    • width_3:=| r-p |
    • height_3:=| s-q |
    • リターンエリア-(width_3 * height_3)
  • 理解を深めるために、次の実装を見てみましょう-

    def solve(A, B, C, D, E, F, G, H):
       width_1 = abs(C-A)
       height_1 = abs(D-B)
    
       width_2 = abs(G-E)
       height_2 = abs(H-F)
    
       area = width_1*height_1 + width_2*height_2
    
       if (G<A) or (E>C) or (F>D) or (H<B):
          return area
       else:
          p = max(A,E)
          q = max(B,F)
          r = min(C,G)
          s = min(D,H)
    
          width_3 = abs(r-p)
          height_3 = abs(s-q)
    
          return area - (width_3*height_3)
    
    A = -3
    B = 0
    C = 3
    D = 4
    E = 0
    F = -1
    G = 9
    H = 2
    print(solve(A, B, C, D, E, F, G, H))

    入力

    -3, 0, 3, 4, 0, -1, 9, 2
    

    出力

    45

    1. 2つの文字列から珍しい単語を見つけるPythonプログラム

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B):    # count    count = {}    # insert in A    for word in A.split():       count[word] = coun

    2. いいえが2の累乗であるかどうかを調べるPythonプログラム

      この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur