Поиск код пополам не работает

Не могли бы вы объяснить, где я ошибаюсь с этим кодом? Я хочу выполнить поиск деления пополам, который принимает входной номер и повторяет поиск деления пополам, пока он не найдет тот же номер, что и ввод, и не напечатает различные операторы.

num =int( input("Please think of a number between 0 and 100!"))
maximum = num
minimum = 0
average = (minimum+maximum)/2.0

while(average<num):
 print ("Is your secret number ", +average, "?")  
 cond = input("Enter 'h' to indicate the guess is too high.Enter 'l' to indicate the guess is too low.Enter 'c' to indicate I guessed correctly.")

 if( cond == "h"):
    maximum = minimum
    minimum = 0
 elif(cond == "l"):
    minimum = maximum
    maximum = 100
 elif(cond == "c"): 
    print("Game over. Your secret number was: ", +average)
    break

1 ответ

Решение

Во-первых, вам не нужно вводить предположение. Вы всегда будете начинать с середины своего диапазона.

Поэтому вместо этого подождите, пока пользователь придумает число, а затем догадайтесь.

import time

minimum = 0
maximum = 100
print("Please think of a number between {} and {}!".format(minimum, maximum))
time.sleep(3)

average = (minimum + maximum)/2.0

while(True):
    print ("Is your secret number ", +average, "?")  
    cond = input("Enter 'h' to indicate the guess is too high.Enter 'l' to indicate the guess is too low.Enter 'c' to indicate I guessed correctly.")

Вторая проблема, вам нужно "разделить" пространство поиска. Если предположение слишком высокое, установите это предположение как максимальное, если слишком низкое, установите его как минимальное. Нет необходимости устанавливать другое значение в любом случае; это остается тем же.

    if( cond == "h"):
        maximum = average
    elif(cond == "l"):
        minimum = average
    elif(cond == "c"): 
        print("Game over. Your secret number was: ", +average)
        break

И, наконец, вам нужно обновить average каждый раз через цикл, чтобы генерировать новое предположение.

    average = (minimum + maximum) / 2.0
Другие вопросы по тегам