Найти - Пользователи
Полная версия: Нужна помощь с циклом
Начало » Центр помощи » Нужна помощь с циклом
1 2
dimy44
двоичный поиск. ТС ведь так просил?
насчет сравнения с for. Поиск нуля
max_num = 100
min_num = 0
x = 0
step = 0
while 1:
    v = (max_num + min_num) // 2
    if v > x:
        max_num = v - 1
    elif v < x:
        min_num = v + 1
    elif v == x:
        print step
        break
    step += 1
>>>
5
>>>
5 шагов.
Hando84
Спасибо всем за помощь. В связи с моими слабыми знаниями для меня понятнее всего оказался код предложенный sergeekом. Единственное только надо изменить верхний и нижний предел вместо 100 и 0 на 101 и 1, иначе комп может дойти до нуля а это не входит в наш диапазон а также не достигнет числа 100 которое тоже может быть загадано. Но это так частности. Главное что я понял сам принцип и это максимально близко к тому что я пытался написать на псевдокоде. Единственное, что мне не очень нравиться, это то что приходиться идти на хитрости по максимальному и минимальному пределу. тоесть составлять некую формулу со сложением
lim_h = value
value = (lim_l + value) // 2
Неужели нельзя никак указать в цикле что-нибудь типо условия
if value > 100 and value < 1
break
dugar
dimy44
двоичный поиск. ТС ведь так просил?насчет сравнения с for. Поиск нуля
Эээ, извини, я был с телефона и не увидел //2. Ты прав, еще раз сорри!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB