5.電子サイコロを作ろう
蚤の心に使った「乱数」の考え方はとても重要だ。自然現象も社会現象も、世の中の出来事は必ず不確定な部分がある、それをコンピュータでシミュレーションする場合、乱数が役に立つ。おもしろいゲームのプログラムにも乱数はかかせない。乱数の扱いにもう少しなれるため、電子サイコロ作りに挑戦しよう。
(1)サイコロの条件
@RAND関数を使ってサイコロを作ろう。
サイコロだから、0や7を出してはいけない。
サイコロだから、どの数字も同じ確率で出なければならない。
同じ確率かどうかは、何回も数字を出させ、その平均が になるか調べればいい。
やってみよう
1桁見えればいいのだからと、セルの表示属性を「固定:小数以下0」として試したのが下の例だが、どれもうまくいっていない。サイコロとして使えない点はそれぞれどこか考えてみよう。
Bはだいぶサイコロらしい数字の並びだ。平均も3.5い近い。だが、それぞれの数字の出現率を確認するとあまり良いサイコロでないことが分かる。
出現回数を数えよう 1 2 3 4 5 6
表計算で桁数を固定すると、自動的に四捨五入されて表示される。@RAND*5+1がどんな範囲の乱数を応えるか考えると,Bで「1」と「6」の割合が少ないのは当然だと気づくだろう。
@RAND |
@RAND*5 |
+1 |
四捨五入 |
切り捨て |
切り上げ |
最小=0 |
0
| 1 |
1 |
|
|
0.1 |
0.5 |
1.5 |
2 |
0.2 |
1 |
2 |
|
|
0.3 |
1.5 |
2.5 |
3 |
0.4 |
2 |
3 |
|
|
0.5 |
2.5 |
3.5 |
4 |
0.6 |
3 |
4 |
|
|
0.7 |
3.5 |
4.5 |
5 |
0.8 |
4 |
5 |
|
|
0.9 |
4.5 |
5.5 |
6 |
最大<1 |
5 |
6 |
|
やってみよう
小数部分を切り上げたら、
あるいは切り捨てたら、
どんな結果になるか、
左表を完成してみよう。
電子サイコロにするには
結局どうしたら良いか?
|
|
|