【ExcelVBA】100人がランダムで誰かに1円渡すマクロを作ってみた

100人を部屋に集めて、全員がその部屋にいる誰かにランダムに1円を与え続けていった場合、一見するとだいたいの損益が±0円で収まりそうに思えますが、実際は所持金の差が広がる、という結果になるそうです。
下記が参考記事ですが、この記事内では貧富の差が生まれるのは単なる偶然の可能性もあることが示唆されています。

WHEN RANDOM PEOPLE GIVE MONEY TO RANDOM OTHER PEOPLE

この現象について、以前にExcelVBAで検証したマクロが出てきたので紹介しようと思います。

ExcelVBAで検証するマクロを作ってみた

この現象を検証するマクロを紹介します。
実際に処理を行って検証してみたところ、確かに所持金の差は広がりました。

「100人が1円を渡す」行為を1000回行った結果

せっかくなので、このExcelVBAをリリースしてみようと思います。
マクロを有効にしてからお使いください。ソースコードの確認もできます。

使い方

「100人が1円を渡す」行為を何回行うかを入力してください(①)。
[実行]をクリックしてください(②)。

①と②の説明

それぞれの人の所持金額が表示されます(③)。
最も所持金額が多い人の金額、最も所持金額が少ない人の金額、その差額が表示されます(④)。
[初期化]をクリックすると、全員の所持金が100円の状態に戻ります(⑤)。
さらに追加で「100人が1円を渡す」をする場合は[実行]をクリックしてください(⑥)。

③、④、⑤、⑥の説明

所持金の差が広がることを確認できるのではないかと思います。

タイトルとURLをコピーしました