すごろく必勝法
はい。誇大広告です。
それはそうと、僕は小学生の頃、ノートにすごろくを書いては休み時間に友達と遊んでいました。
今では忘却の片隅ではありますが、異常に辛口で5マス連続の「ふりだしにもどる」は当たり前、 宇宙を舞台に複数のアイテムを揃えなければファイナルステージに辿りつけないなど、 一度の休み時間では確実にクリア出来ないために、毎回集まって遊んでいたような記憶があります。 今となってはよく付き合ってくれていたなと感謝しきりですが、今の僕の原点でもありました。
きっと今の時代も、日本中に小さなゲームクリエイターはたくさんいることと思います。
そんな彼らのために、というわけではなく、僕自身が勝手に気になったことですが、
どんなところに罠を設置すればプレイヤーが多く踏むのか? そもそも、あるマスに止まる確率は何%なのか?
実際に調べてみました。といっても、確率を計算するわけではなく、C言語を用いて試行数に物を言わせる モンテカルロ法を用います。 よって、結果について理由を詳しく説明することはしません。というか出来ません。
御託はともかくやってみましょう。実際に書いてみたソースは以下の通り。
#include <stdio.h>
#include <stdlib.h>

#define DICE_MAX 6
#define STEP_MAX 20
#define TRY_MAX 1000000

int main(){
	int stop[STEP_MAX] = {0};
	for(int i = 0; i < TRY_MAX; ++i){
		for(int t = 0; t < STEP_MAX; t += (rand() % DICE_MAX) + 1){
			++stop[t];
		}
	}
	for(int i = 0; i < STEP_MAX; ++i){
		printf("%dマス目に止まる確率は%.2f\n", i, float(stop[i] * 100) / TRY_MAX);
	}
	return 0;
}
DICE_MAXはサイコロの出目の最大、
STEP_MAXは止まる確率を調べるマスの数、
TRY_MAXは試行数です。
さて、どんな結果になるか。結果を見る前に、一度予想していただきたいところです。
この実行結果をここに20行載せるのも見苦しいので、不慣れなくせにグラフにしてみました。

特筆すべきは6の高さと7の低さに尽きます。また、特に条件がなければ3割弱に収束するようです。 このシステムをどう活かせるかはわかりませんが、日本各地の小学校で活動なさっているすごろくクリエイターの方にはぜひ知っておいてほしい情報でした。