回答編集履歴
5
f
test
CHANGED
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
input(正解y or 高すぎh or低すぎl)
|
16
16
|
|
17
|
-
if 入力値がh => high=guess
|
17
|
+
if 入力値がh => high=guess
|
18
18
|
|
19
|
-
elif l => low=guess
|
19
|
+
elif l => low=guess
|
20
20
|
|
21
21
|
elif y => break(whileループから抜ける)
|
22
22
|
|
4
f
test
CHANGED
@@ -8,6 +8,10 @@
|
|
8
8
|
|
9
9
|
コンピュータの推測値guess=int((high+low)/2)
|
10
10
|
|
11
|
+
print(guess)
|
12
|
+
|
13
|
+
#表示されたguessとユーザーがあらかじめ用意していた答えの数値を、*ユーザーが頭の中で正しく比較評価した上で、下記h, l ,sのいずれかを正直に入力する*。(一応h, l, s以外の文字が入力された場合も対応している)
|
14
|
+
|
11
15
|
input(正解y or 高すぎh or低すぎl)
|
12
16
|
|
13
17
|
if 入力値がh => high=guess-1
|
@@ -16,7 +20,7 @@
|
|
16
20
|
|
17
21
|
elif y => break(whileループから抜ける)
|
18
22
|
|
19
|
-
else もう一度input
|
23
|
+
else もう一度input #ユーザーの入力誤りがない前提ならばここは省略してもよい
|
20
24
|
|
21
25
|
(whileループ繰り返し)
|
22
26
|
|
3
f
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
愚直なアルゴリズムですが
|
2
2
|
|
3
3
|
```
|
4
4
|
|
2
f
test
CHANGED
@@ -26,4 +26,4 @@
|
|
26
26
|
|
27
27
|
というように範囲を狭めていくアプローチがあると思います。
|
28
28
|
|
29
|
-
(上記は厳密ではなく、端数処理について検証していないため正解にたどり着けないパターンがある
|
29
|
+
(上記は厳密ではなく、端数処理について検証していないため正解にたどり着けないパターンがあるかもしれません。詳細は他の方が言われているようにように二分探索アルゴリズムのスクリプトを参照してください)
|
1
f
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
一晩愚直なアルゴリズムですが
|
1
|
+
一晩愚直なアルゴリズムですが
|
2
2
|
|
3
|
-
|
3
|
+
```
|
4
4
|
|
5
5
|
初期値:high=100, low=0
|
6
6
|
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
print(正解)
|
24
24
|
|
25
|
-
|
25
|
+
```
|
26
26
|
|
27
27
|
というように範囲を狭めていくアプローチがあると思います。
|
28
28
|
|