第56問 40%で当たるおみくじ
「当たりが出る確率40%」のおみくじを作ろう。関数 omikuji は、乱数()を使って0以上1未満のランダムな数を r に入れ、r と 0.4 をくらべて「当たり」か「はずれ」を返します。当たりが出る確率がちょうど40%になるように、1箇所の穴を埋めよう
難易度:★★★☆☆(3/標準)。単元:条件分岐・繰り返し・関数。共通テスト「情報I」で使われるDNCL(共通テスト用プログラム表記)の穴埋め問題です。JavaScriptを有効にすると、このページでプログラムを組み立てて実行しながら解けます。
プログラム
関数 omikuji():
r = 乱数()
もし r [A] 0.4 ならば:
"当たり" を返す
そうでなければ:
"はずれ" を返す
i を 1 から 5 まで 1 ずつ増やしながら繰り返す:
kekka = omikuji()
表示する(i + "回目は" + kekka)
空欄 [A] に当てはまるものを、次の選択肢から選びます。
選択肢
ヒント
乱数() は 0 以上 1 未満の数を返します。0 から 1 までの帯のうち、0 から 0.4 までのぶんがちょうど4割。この「0.4 より小さいほう」を当たりにしたいので、r と 0.4 をくらべる記号は < です。乱数を使っているので実行するたびに結果は変わりますが、何回もためすと4割くらいが「当たり」になります
解答
よくある間違い
- [A]
> … 向きが逆です。> だと 0.4 より大きいほうが当たりになります。0.4 から 1 までは帯の6割なので、確率60%のおみくじになってしまいます。当たりにしたいのは小さいほうの4割です
- [A]
>= … 向きが逆です。>= だと 0.4 から 1 までが当たりになり、6割=60%になってしまいます。0 から 0.4 までを当たりにする記号を選びましょう
- [A]
== … == は「ぴったり同じか」を調べる記号です。乱数() が返すのは 0.2836… のような細かい小数なので、ちょうど 0.4 になることはまずありません。何回引いてもほとんど「はずれ」になってしまいます
この単元の解説動画
ほかの問題