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

Pythonのスターターが勝つためにゲームを開始するための可能な動きの数を見つけるためのプログラム


AmalとBimalがゲームをしていると仮定します。中に1つ以上のチョコレートが入ったn個の容器があります。これらのコンテナには1からNまでの番号が付けられており、i番目のコンテナにはcount[i]個のチョコレートがあります。今、ゲームはのようです。最初のプレーヤーはコンテナを選択し、そこから1つまたは複数のチョコレートを取り出します。次に、2番目のプレーヤーは空でないコンテナを選択し、そこから1つまたは複数のチョコレートを取り出します。このように、代わりに再生します。プレーヤーの1人がチョコレートを飲む方法がない場合、そのプレーヤーはゲームに負けます。アマルの番が最初である場合、アマルが常に勝つように、アマルが最初の動きをすることができる方法をいくつ見つける必要があります。

したがって、入力がcount =[2、3]のようである場合、最初はコンテナーが[2、3]のようであるため、出力は1になります。彼らはこのように遊ぶことができます

  • アマルは2番目の容器からチョコレートを1つ選ぶので、現在[2、2]
  • Bimalは最初のコンテナからチョコレートを1つ選ぶので、現在[1、2]
  • アマルは2番目の容器からチョコレートを1つ選ぶので、現在[1、1]
  • Bimalは最初のコンテナからチョコレートを1つ選ぶので、現在[0、1]

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

  • tmp:=0
  • カウントの各cについて、
    • tmp:=tmp XOR c
  • tmpがゼロの場合、
    • 0を返す
  • それ以外の場合、
    • 移動:=0
    • カウントの各cについて、
      • 移動:=移動+((tmp XOR c)
    • リターンムーブ

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

def solve(count):
   tmp = 0
   for c in count:
      tmp ^= c

   if not tmp:
      return 0
   else:
      moves = 0
      for c in count:
         moves += (tmp^c) < c
      return moves

count = [2, 3]
print(solve(count))

入力

[2, 3]

出力

1

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  2. リスト内で最大の数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、リストの最大の要素を計算する必要があります。 ここでは、組み込み関数を使用して、問題ステートメントの解決策に到達します sort()関数の使用 例 # list list1 = [23,1,32,67,2,34,12] # sorting list1.sort() # printing the last element print("Largest element is:", list1[-1]) 出力 Largest in given array is 67