- ВКонтакте
- РћРТвЂВВВВВВВВнокласснРСвЂВВВВВВВВРєРСвЂВВВВВВВВ
- РњРѕР№ Р В Р’В Р РЋРЎв„ўР В Р’В Р РЋРІР‚ВВВВВВВВРЎР‚
- Viber
- Skype
- Telegram
Код на питоне для решения 5 задачи из Егэ
count = 0
for x in range(1_000_000_000, 1_789_456_123+1):
if x%16 in [10,15] or x%8 in [0,3]:
count += 1
print(count)
Можете пожалуйста объяснить как работает этот код, для этой задачи:
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Рассмотрите двоичные остатки от деления на 4, это 00,01,10,11
Посмотрите, какие двоичные окончания чисел получатся при применении данного алгоритма к этим остаткам.
Приведённый код проверяет три и четыре последних бита каждого числа из диапазона - соответствуют ли они этим окончаниям. На этом этапе учёбы вы уже должны знать, что x%16 выделяет 4 последних бита числа. Если это непонятно, то сушите вёсла...
Алгоритм рабочий, но неэффективный, т.к. проверяет миллиард чисел. Вместо этого нужно просто посчитать математически количество чисел с нужными окончаниями в данном интервале.