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

最初のプレイヤーをチェックするプログラムは、Pythonでターゲットの合計に達することで勝つことができます


2つの数値kとターゲットがあるとします。ここで、AmalとBimalがゲームをプレイしていると考えてください。各ラウンドで、アマルは1からkまでの数字を選び、最初は0から始まる合計スコアに追加します。合計を超えて目標を達成した人が勝ちます。アマルは常に最初にプレーします。両方が最適にプレーした場合、彼が勝利を強制できるかどうかを確認する必要があります。

したがって、入力がk =5 target =10の場合、Amalが最初に4を選択するかのように、出力はTrueになります。次に、Bimalが1、2、...、または5を選択するかどうかにかかわらず、Amalは選択することで常に10に到達できます。次の5。

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

  • ターゲット%(k + 1)が0でない場合、
    • trueを返す
  • それ以外の場合
    • falseを返す

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

def solve(k, target):
   return target % (k + 1) != 0

k = 5
target = 10
print(solve(k, target))

入力

5, 10

出力

True

  1. Pythonで訪問した場所を移動し続けることでロボットが目標に到達できることを確認するプログラム

    現在、位置(0、0)(デカルト平面)に座っているロボットがあるとします。 N(北)、S(南)、W(西)、E(東)を含む、移動可能な移動のリストがある場合。ただし、ロボットが以前の場所に到達した場合、ロボットは新しい未訪問の場所に到達するまで同じ方向に移動し続けます。移動後、(x、y)座標で終了するかどうかを確認する必要があります。 したがって、入力が次のような場合 move =[N、N、E、N、W、S]、coord =[0、-1]の場合、ロボットは2つ進むため、出力はTrueになります。上、右、上、左、下、現在の位置にアクセスすると下に移動し、次にその場所にもアクセスし、再び下に移動

  2. Pythonでロボットが目標位置に到達できるかどうかをチェックするプログラム

    現在、位置(0、0)(デカルト平面)に座っているロボットがあるとします。 N(北)、S(南)、W(西)、およびE(東)を含む、実行可能な移動のリストがある場合。宛先座標(x、y)に到達できるかどうかを確認する必要があります。 したがって、入力がmoves =[N、N、E、E、S]、(x、y)=(2,1)のような場合、出力はTrueになります。 これを解決するには、次の手順に従います- temp_coord:=[0,0] 移動の移動ごとに、 移動が「N」と同じ場合、 temp_coord [1]:=temp_coord [1] + 1 それ以外の場合、移動が「S」と同じ