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

カットされたキューブの数を調べるPythonプログラム


次元a、b、およびcのいくつかの立方体があり、それらを使用して、次元axbxcの新しいボックスが作成されたとします。 a、b、およびcは互いに素です。 gcd(a、b)=gcd(b、c)=gcd(c、d)=1.図に示すように、ボックスを1つのスライスで2つに切断する必要があります。箱がこのようにカットされているかどうか、いくつの立方体が2つのピースにカットされているかを確認する必要があります。可能な3次元を含む配列が提供されており、そこから答えを見つける必要があります。

カットされたキューブの数を調べるPythonプログラム

カットは、頂点P、Q、およびRを通過する平面になるようにこのように行われます。

したがって、入力がn =3、input_array =[[1、2、3]、[4、2、5]、[6、8、2]]の場合、出力は[5、18、37 ]

与えられた3つの異なるインスタンスがあり、カットされたキューブの数を調べる必要があります。立方体が写真に示されている方法でカットされている場合。 5、16、37個の立方体がそれぞれカットされます。

これを解決するために、次の手順に従います&miuns;

  • 出力:=新しいリスト
  • 0からnの範囲のiについては、
    • a:=input_array [i、0]
    • b:=input_array [i、1]
    • c:=input_array [i、2]
    • val:=フロア値(a * b + a * c + b * c --1)/ 2 mod 1000000007
    • 出力の最後にvalを挿入
  • 出力を返す

理解を深めるために、次の実装を見てみましょう-

from math import ceil
def solve(n, input_array):
   output = []
   for i in range(n):
      a, b, c = input_array[i][0], input_array[i][1], input_array[i][2]
      val = ((a * b + a * c + b * c - 1) // 2 % 1000000007)
      output.append(val)
   return output
print(solve(3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]))

入力

3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]

出力

[5, 18, 37]

  1. カットされたキューブの数を調べるPythonプログラム

    次元a、b、およびcのいくつかの立方体があり、それらを使用して、次元axbxcの新しいボックスが作成されたとします。 a、b、およびcは互いに素です。 gcd(a、b)=gcd(b、c)=gcd(c、d)=1.図に示すように、ボックスを1つのスライスで2つに切断する必要があります。箱がこのようにカットされているかどうか、いくつの立方体が2つのピースにカットされているかを確認する必要があります。可能な3次元を含む配列が提供されており、そこから答えを見つける必要があります。 カットは、頂点P、Q、およびRを通過する平面になるようにこのように行われます。 したがって、入力がn =3、inp

  2. Pythonで捕まえることができる雨の総量を見つけるためのプログラム

    n個の非負の整数の配列があるとします。これらは、各バーの幅が1である高さを表しており、雨が降った後にどれだけの水を捕まえることができるかを計算する必要があります。したがって、マップは次のようになります- ここでは、8つの青いボックスがあることがわかります。したがって、出力は8になります。 これを解決するには、次の手順に従います- スタックst、water:=0およびi:=0を定義します whilei<身長のサイズ =height [i]の場合、iをスタックにプッシュし、iを1増やします それ以外の場合 x:=スタックトップ要素、スタックからトップを削除 スタックが空でない場合