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

PythonでNステップで(0、0)から(x、y)に移動できるかどうかを確認します


座標点(x、y)と別の値nがあるとします。 nステップで(0、0)から(x、y)に移動できるかどうかを確認する必要があります。左右、上下の4方向のどれでも動かすことができます。

したがって、入力がp =(2、1)n =3の場合、出力はTrueになり、右に2ステップ、次に上方向に1ステップ移動できます。

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

  • if n> =| x of p | + | y of p | (n-(| x of p | + | y of p |))が偶数の場合、
    • Trueを返す
  • Falseを返す

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

def solve(p, n):
   if n >= abs(p[0]) + abs(p[1]) and (n - (abs(p[0]) + abs(p[1]))) % 2 == 0:
      return True
   return False
p = (2, 1)
n = 3
print(solve(p, n))

入力

(2, 1), 3

出力

True

  1. PythonでベクトルAを回転させ、それにベクトルCを追加することで、ベクトルBに到達できるかどうかを確認します。

    2D平面に3つのベクトルx、y、zがあるとします。ベクトルxからベクトルyを90度(時計回り)回転させるか、必要に応じて何度でもzを追加して、ベクトルyを取得できるかどうかを確認する必要があります。 したがって、入力がx =(-4、-2)y =(-1、2)z =(-2、-1)のような場合、位置を取得するためにxにzを追加できるため、出力はTrueになります。 (-2、-1)、次に時計回りに90°回転して(-1、2)を取得します。 これを解決するには、次の手順に従います- 関数util()を定義します。これにはp、q、r、sが必要です d:=r * r + s * s dが0

  2. Pythonでゼロを移動する

    いくつかの数値を保持する配列があるとします。ゼロ以外の値とゼロ値があります。したがって、他の数値の相対的な順序を変更せずに、すべてゼロを右側に送信する必要があります。したがって、配列が[0、1、5、0、3、8、0、0、9]のような場合、最終的な配列は[1、5、3、8、9、0、0、0、0になります。 ] これを解決するには、次の手順に従います- インデックス=0と仮定します for i=0からAの長さ A [i]!=0の場合、 A [インデックス]:=A [i] index:=index + 1 for i=Aの長さのインデックス A [i] =0 例 理