第13回 Pythonによるシミュレーションのまとめ(2025年1月20日)


今日の内容


本日(1/20)の授業について

今日の課題については、成績評価の「毎回の授業での課題 15%」には加えず、特別加点とします。 (今日の課題を提出しなくても、減点にはならないという意味)
期末レポート課題が未提出の人は、今日の課題ではなく期末レポート課題に取り組んでください。 既に期末レポート課題を提出した人は、今日の課題に取り組んでください。
なお、今日の授業の質問受付については期末レポート課題についての質問を優先します。 つまり、今日の課題は特別加点なので基本的には自分の力のみでやってください、ということになります。


期末レポート課題

提出がまだの人は、期末レポート問題に取り組んでください。 (ヒントはこちらのページ

自分で色々な条件でのシミュレーションを試したうえで、多角的な視点からの考察を行ってください。 また、ただグラフを描いてその結果を述べるだけではなく、数理的な視点からの考察も行ってみてください。

締め切りは、2025年1月22日(水)23時です。


大沢サイコロゲーム

今日の演習では、まず皆さんにサイコロとチップで簡単なゲームをやってもらい、 そのゲームのシミュレーションを行うプログラムを作成します。
と、本当は言いたいのですが、残念ながら今年度は難しそうです。 もし興味のある方は、後日参加者を集めて試してみてください。

ゲームの内容は以下の通りです。

ゲームの準備およびチップの分配

チップはどのように分配されるかを事前に考えてた上で、実際に試してみましょう。


ゲームのルール

各自のチップの枚数の分布はどのように変化するかを事前に考えた上で、実際に試してみましょう。

このゲームのねらい

このゲームの見どころは、「ランダムにチップを交換するという公平なルールが、本当に平等を生み出すのか」ということです。 実はこのゲームには、「統計力学」という分子集団の理論のエッセンスが詰め込まれています。 温度とは何か、エントロピーとは何か、なぜ熱は高い方から低い方にしか移動しないのか、等々についても、 このゲームから理解することができます。 (詳しくはこちらの本を参照。 以前に高校生向け講演会で使ったスライドも置いておきます。)

「現象数理学」を勉強するのに、分子の話や物理の話なんて必要ない、と思うかもしれませんがそれは違います。 統計力学の「ミクロ(微視的)な法則から、集団のマクロ(巨視的)な性質を導く」という方法論は、物理現象に限らず、 生命現象や社会現象などにも適用可能です。 また「機械学習」の分野でも統計力学の考え方や方法論は非常に有効です。


課題1

上記の大沢サイコロゲームのシミュレーションを行い、Pythonで可視化するプログラムを作成せよ。 具体的には、以下の要件を満たすように作成せよ。


実行までに数分かかる場合があるので、デバックの際は交換回数を200回で試すと良い。
何回目かは表示させなくて良い。

プレイヤー人数:100名、チップの総数:400枚でのチップの分布。


レポート課題

「課題1」で作成したプログラムを時間までに提出せよ。

ただし、コメント文として

学生番号、名前、プログラムの簡単な説明

を書く事。

ファイル名は、13-rep.ipynb として、 提出したファイル単体で実行できるようにすること。

提出締め切り: 2025年1月20日19時


戻る