Size: 993
Comment:
|
Size: 1784
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
* 普通は,あてずっぽうではなくて,二分探索で攻めてきますよね. * つまり... * 0~99の範囲なので,まずは,真ん中の50を入力してみます. * その結果で,候補を半分に,限ることができます. * 「大きすぎる」というヒントが得られたら,0~49の範囲に正解があるので,また,その真ん中である24か25くらいを入力してみましょうか. * 「小さすぎる」というヒントが得られたら,51~99の範囲に正解があるので,また,その真ん中である74か75くらいを入力してみましょうか. * これを繰り返していくと,効率よく候補の範囲を絞り込んでいけそうです |
- この課題のヒント
- 基本的には,「Xが入力されるまで,入力を受け付けることを繰り返す」ことになります.
- そのループに先立って,乱数で0~99の範囲で,正解となる整数を決めます.
- ループの中では,利用者が入力した数値と,正解との大小比較をします.
- 正解と入力した数値が等しければ,利用者の勝ちです.
- 利用者があきらめて,Xを入力すれば,コンピュータの勝ちです.
- さもなくば,入力した数値が,正解よりも大きい(high)か,小さい(low)かを判断してヒントを表示します.
- いわゆる,ハイ&ローゲームです.
- 普通は,あてずっぽうではなくて,二分探索で攻めてきますよね.
- つまり...
- 0~99の範囲なので,まずは,真ん中の50を入力してみます.
- その結果で,候補を半分に,限ることができます.
- 「大きすぎる」というヒントが得られたら,0~49の範囲に正解があるので,また,その真ん中である24か25くらいを入力してみましょうか.
- 「小さすぎる」というヒントが得られたら,51~99の範囲に正解があるので,また,その真ん中である74か75くらいを入力してみましょうか.
- これを繰り返していくと,効率よく候補の範囲を絞り込んでいけそうです
- その結果で,候補を半分に,限ることができます.
- 0~99の範囲なので,まずは,真ん中の50を入力してみます.
- つまり...
- 基本的には,「Xが入力されるまで,入力を受け付けることを繰り返す」ことになります.