⇤ ← Revision 1 as of 2018-10-14 21:53:47
Size: 1007
Comment:
|
← Revision 2 as of 2018-10-28 15:28:31 ⇥
Size: 1613
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 36: | Line 36: |
===== 高度な話題 (授業中,もしくは授業後に順次公開します) ===== [ <<Action(edit)>> ] ## * この例題では,特に「高度な話題」はありません. ## Python/Prog/Practice/Extended/02/EP_00a/AdvancedTopics * ⇒ [[../AdvancedTopics|高度な話題へのリンク]]: 授業の流れを阻害しないように別ページにします * (後日の回の授業内容にはなる可能性がありますが,この回の授業内容には含めません). * に関するものです. ## <<Include(../AdvancedTopics)>> ## [[../AdvancedTopics|*]] ---- |
概要
[ edit ]
演習(5)
拡張課題(5a)
【関数定義】
数当てゲーム
(コンピュータが決めた0~99の間の
整数をヒントから当てるゲーム)
ヒント
[ edit ]
- この課題のヒント
- 基本的には,「Xが入力されるまで,入力を受け付けることを繰り返す」ことになります.
- そのループに先立って,乱数で0~99の範囲で,正解となる整数を決めます.
- ループの中では,利用者が入力した数値と,正解との大小比較をします.
- 正解と入力した数値が等しければ,利用者の勝ちです.
- 利用者があきらめて,Xを入力すれば,コンピュータの勝ちです.
- さもなくば,入力した数値が,正解よりも大きい(high)か,小さい(low)かを判断してヒントを表示します.
- いわゆる,ハイ&ローゲームです.
- 普通は,あてずっぽうではなくて,二分探索で攻めてきますよね.
- つまり...
- 0~99の範囲なので,まずは,真ん中の50を入力してみます.
- その結果で,候補を半分に,限ることができます.
- 「大きすぎる」というヒントが得られたら,0~49の範囲に正解があるので,また,その真ん中である24か25くらいを入力してみましょうか.
- 「小さすぎる」というヒントが得られたら,51~99の範囲に正解があるので,また,その真ん中である74か75くらいを入力してみましょうか.
- これを繰り返していくと,効率よく候補の範囲を絞り込んでいけそうです
- その結果で,候補を半分に,限ることができます.
- 0~99の範囲なので,まずは,真ん中の50を入力してみます.
- つまり...
- 基本的には,「Xが入力されるまで,入力を受け付けることを繰り返す」ことになります.
実行例
*
プログラム例: 本質的な部分 (授業中に順次公開します)
*
高度な話題 (授業中,もしくは授業後に順次公開します)
[ edit ]
⇒ 高度な話題へのリンク: 授業の流れを阻害しないように別ページにします
- (後日の回の授業内容にはなる可能性がありますが,この回の授業内容には含めません).
- に関するものです.