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