Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2018-10-17 15:29:29
Size: 923
Comment:
Revision 4 as of 2018-10-18 07:00:09
Size: 1784
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
    * さもなくば,入力した数値が,正解よりも大きいか,小さいかを判断してヒントを表示します.     * さもなくば,入力した数値が,正解よりも大きい(high)か,小さい(low)かを判断してヒントを表示します.
     * いわゆる,ハイ&ローゲームです.
   * 普通は,あてずっぽうではなくて,二分探索で攻めてきますよね.
    * つまり...
     * 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くらいを入力してみましょうか.
            • これを繰り返していくと,効率よく候補の範囲を絞り込んでいけそうです

SoftEng: Python/Prog/Practice/Extended/02/EP_005a/Hints (last edited 2018-10-28 15:21:21 by TadashiIijima)