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

Pythonでn回反転した後のボールの位置を見つけるプログラム


n個のボールがあるとします。ボールは1、2、3、4、...、nの方法で注文されます。これで、ボールが順番に逆になります。または、n、n-1、n-2、......、2、1の方法で順番に並べられます。ボールは再び順番に逆になり、今回は位置1から逆になります。 nに、または今、順序はn、1、2、.....、n-1になります。この反転プロセスはn回繰り返され、開始位置が1つ右に移動するたびに行われます。ここで、反転後、最初は「インデックス」の位置にあるボールの位置を確認する必要があります。

したがって、入力がボール=5、インデックス=2の場合、出力は4になります。ボールは最初は1、2、3、4、5

次に、

5,4,3,2,1
5,1,2,3,4
5,1,4,3,2
5,1,4,2,3

位置2のボールは現在位置4にあります。

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

  • インデックス<(ボール/ 2)のフロア値の場合、
    • return 2 * index + 1
  • それ以外の場合、
    • return 2 *(balls-index-1)

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

def solve(balls, index):
   if index < balls // 2:
      return 2 * index + 1
   else:
      return 2 * (balls - index - 1)

print(solve(5, 2))

入力

5, 2

出力

4

  1. グラフがPythonのすべての人によってトラバース可能かどうかを確認するプログラム

    0からn-1までの番号が付けられたn個の頂点を含むグラフが与えられたとします。グラフは無向であり、各エッジには重みがあります。グラフには3種類の重みを設定でき、各重みは特定のタスクを示します。グラフをトラバースできるのは、ジャックとケーシーの2人です。エッジの重みが1の場合、ジャックはグラフをトラバースできます。重みが2の場合、ケーシーはグラフをトラバースできます。エッジの重みが3の場合、両方がグラフをトラバースできます。グラフを両方でトラバース可能にするために必要なエッジをすべて削除する必要があります。ジャックとケーシー。グラフをトラバース可能にするために削除するエッジの数を返します。トラバ

  2. Pythonのグリッドボックスのどこにボールが着地するかを見つけるプログラム

    m x nグリッドボックスが与えられたとします。各セルには、右上から左下、または左上から右下のいずれかに配置されたボードがあります。上のセルからボールがボックスに入れられ、そのボールがボックスの下部に到達するかどうかを確認する必要があります。グリッドはマトリックスとして与えられます。セルに1のマークが付いている場合、対角線上のボードは左上から右下に広がります。 -1とマークされている場合は、右上隅から左下隅にまたがっています。 n個のボールが箱に入れられた場合、底に到達するボールの数を調べる必要があります。 3x3グリッドボックスの例。 したがって、入力がmat =のような場合