私は簡単な推測ゲームとそれを推測する方法を書きました...
from gasp import *
number = random_between(1, 1000)
guesses = 0
while True:
guess = input("Guess the number between 1 and 1000: ")
guesses += 1
if guess > number:
print "Too high!"
elif guess < number:
print "Too low!"
else:
print "\n\nCongratulations, you got it in %d guesses!\n\n" % guesses
break
質問によると、適切な戦略が使用されている場合、推測の最大数は11に等しくなければなりません。バイナリ検索を使用して正しい数を取得しましたが、推測の数は10を超えることはありません。確認するには、次のことを行いましたそして、それは非終了ループを生成しました。
from gasp import *
guesses = 0
big = 1000
small = 1
while guesses != 11
number = random_between(1, 1000)
while True:
guess = (big + small) / 2
guesses += 1
if guess > number:
print "Too high!"
big = guess
elif guess < number:
print "Too low!"
small = guess
else:
print "\n\nCongratulations, you got it in %d guesses!\n\n" % guesses
break
誰が正しいかは、私が間違いを犯したか、必要な推測の数が 10 を超えてはならず、質問が間違っているためです。