円形の座席配置問題の解決

PythonBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、Python を使ってゲームのようなイベント管理システムを実装する方法を学びます。目的は、与えられたカウントルールに基づいて、円形の座席配置における最後の出演者の番号を求めることです。

👀 プレビュー

$ python party.py
報告期間xの数値を入力してください:10
最後の出演者の番号は: 108
$ python party.py
報告期間xの数値を入力してください:18
最後の出演者の番号は: 254

🎯 タスク

このプロジェクトでは、以下のことを学びます。

  • Python ファイルを作成して管理する方法
  • カウントプロセスをシミュレートする関数を実装する方法
  • 与えられた要件に基づいて最後の出演者の番号を求める方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • 円形の座席配置とカウントプロセスの背後にあるロジックを理解する
  • 問題を解くための Python 関数を実装する
  • プログラムを実行して、期待される出力を得る
  • 問題解決能力を現実世界のシナリオに適用する

party.py ファイルを作成する

このステップでは、/home/labex/project ディレクトリに party.py ファイルを作成します。以下の手順に従ってこのステップを完了しましょう。

  1. 好きなテキストエディタまたは IDE を開きます。
  2. /home/labex/project ディレクトリに新しいファイルを作成し、party.py と名付けます。
cd /home/labex/project
touch party.py
  1. party.py ファイルに以下のコードを追加します。
## n は総人数、x は出演番号を表す
def game(n, x):
    '''
    コードを完成させる
    '''

if __name__ == '__main__':
    x = int(input('報告期間 x の数値を入力してください:'))
    game(263, x)

このコードは、party.py ファイルの基本構造を設定します。これには、game() 関数とメイン実行ブロックが含まれています。

✨ 解答を確認して練習

game() 関数を実装する

このステップでは、最後の出演者の番号を求めるために game() 関数を実装します。以下の手順に従ってこのステップを完了しましょう。

  1. コードエディタで party.py ファイルを開きます。

  2. game() 関数内で、全員の席番号を表す seats リストを初期化します。seats リストは 1 から 263 までの数字を含む必要があります。

  3. カウント中の現在の位置を追跡するために index 変数を初期化します。

  4. 1 人だけ残るまでカウントプロセスをシミュレートします。これを行うには、以下の手順を繰り返すループを使用します。

    • 現在の indexx - 1 を加え、seats リストの長さの剰余を取ることで、次にカウントする位置を計算します。
    • 計算された index の人を seats リストから削除します。
  5. seats リストに残った人が最後の出演者です。最後の出演者の番号を出力します。

以下は完成した game() 関数です。

def game(n, x):
    ## 全員の席番号を表す席リストを初期化する
    seats = list(range(1, n + 1))
    ## カウント用のインデックスを初期化する。カウント中の現在の位置を表す
    index = 0

    ## 1 人だけ残るまでカウントをシミュレートする
    while len(seats) > 1:
        ## 次にカウントする位置を計算する
        index = (index + x - 1) % len(seats)
        ## カウントされた人を削除する
        seats.pop(index)

    ## 残った人が最後の出演者です
    last_performer = seats[0]
    print("最後の出演者の番号は:", last_performer)
✨ 解答を確認して練習

プログラムを実行する

このステップでは、party.py プログラムを実行し、最後の出演者の番号を見るために x の値を提供します。

  1. ターミナルまたはコマンドプロンプトを開きます。
  2. /home/labex/project ディレクトリに移動します。
  3. 以下のコマンドを使用して party.py プログラムを実行します。
python party.py
  1. プロンプトが表示されたら、報告期間 x の数値を入力します。たとえば、x = 10x = 18 を試すことができます。
  2. プログラムは最後の出演者の番号を出力します。

以下はプログラムの出力の例です。

$ python party.py
報告期間xの数値を入力してください:10
最後の出演者の番号は: 108
$ python party.py
報告期間xの数値を入力してください:18
最後の出演者の番号は: 254

おめでとうございます!game() 関数を実装し、party.py プログラムを実行することで、このプロジェクトを完了しました。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。