Главная Проекты Номер 15. ЕГЭ по информатике

Номер 15. ЕГЭ по информатике

15 номер егэ информатика

1. Базовый перебор в диапазоне

Когда нужен: найти количество чисел x, для которых выражение истинно.

python

count = 0
for x in range(1, 1001):  # диапазон от 1 до 1000
    if (x > 10) and (x < 20) or (x % 5 == 0):
        count += 1
print(count)

Пояснения:

  • range(1, 1001) — числа от 1 до 1000 включительно.
  • Условие внутри if — логическое выражение из задачи.
  • count накапливает количество подходящих x.

2. Поиск минимального/максимального x

Когда нужен: найти наименьшее или наибольшее x, при котором выражение истинно.

python

# Наименьшее x
result = None
for x in range(1, 1001):
    if (x % 2 == 0) and (x % 3 != 0):
        result = x
        break  # вышли на первом подходящем x
print(result)

# Наибольшее x
result = None
for x in range(1000, 0, -1):  # идём от 1000 вниз до 1
    if (x % 2 == 0) and (x % 3 != 0):
        result = x
        break
print(result)

Пояснения:

  • break останавливает цикл после нахождения первого подходящего значения.
  • Для максимума перебираем диапазон в обратном порядке (range(1000, 0, -1)).

3. Работа с импликацией и эквивалентностью

Когда нужен: в условии есть импликация (AB) или эквивалентность (AB).

python

def implies(a, b):
    return not a or b

def equivalent(a, b):
    return a == b

count = 0
for x in range(1, 101):
    A = (x > 5)
    B = (x < 10)
    if implies(A, B) and equivalent(A, not B):
        count += 1
print(count)

Пояснения:

  • implies(a, b) реализует AB≡¬AB.
  • equivalent(a, b) проверяет AB как равенство значений.

4. Подсчёт чисел, не кратных заданному

Когда нужен: «сколько чисел не делятся на n».

python

n = 3
count = 0
for x in range(1, 101):
    if x % n != 0:
        count += 1
print(count)

Альтернатива (без цикла):

python

total = 100
n = 3
count = total - (total // n)  # числа от 1 до 100, не кратные 3
print(count)

5. Анализ отрезков и интервалов

Когда нужен: определить длину отрезка, где выражение истинно.

python

true_points = []
for x in range(1, 101):
    if (x >= 10) and (x <= 50) and (x % 2 == 1):
        true_points.append(x)

if true_points:
    length = true_points[-1] - true_points[0] + 1
else:
    length = 0
print(length)

Пояснения:

  • true_points собирает все подходящие x.
  • Длина отрезка — разница между последним и первым элементом + 1.

6. Проверка нескольких условий (с приоритетом операций)

Когда нужен: сложное выражение с разными логическими операциями.

python

count = 0
for x in range(1, 101):
    cond1 = (x % 2 == 0)      # чётное
    cond2 = (x % 5 == 0)     # кратно 5
    cond3 = (x > 20)         # больше 20
    
    # (чётное И кратно 5) ИЛИ (не чётное И больше 20)
    if (cond1 and cond2) or (not cond1 and cond3):
        count += 1
print(count)

Важно: используйте скобки, чтобы явно задать приоритет операций.


7. Подсчёт по условию с исключёнными значениями

Когда нужен: «сколько чисел удовлетворяют A, но не B».

python

count = 0
for x in range(1, 101):
    A = (x % 2 == 0)   # чётное
    B = (x % 3 == 0)   # кратно 3
    if A and not B:     # чётное, но не кратно 3
        count += 1
print(count)

8. Работа с битовыми операциями (если нужно)

Когда нужен: в условии встречаются побитовые И (&), ИЛИ (|), XOR (^).

python

count = 0
for x in range(1, 101):
    if (x & 1 == 0) and (x | 4 > 10):  # чётное И (x OR 4 > 10)
        count += 1
print(count)

Пояснения:

  • x & 1 == 0 — проверка на чётность (младший бит равен 0).
  • x | 4 — побитовое ИЛИ с числом 4.

9. Оптимизация через математические формулы (где возможно)

Когда нужен: избежать полного перебора для больших диапазонов.

python

# Сколько чисел от 1 до N делятся на a или на b?
N = 100
a = 2
b = 3

count_a = N // a
count_b = N // b
count_ab = N // (a * b)  # если a и b взаимно просты

count = count_a + count_b - count_ab
print(count)

Пояснения: формула включений‑исключений для двух множеств.


10. Общий шаблон с выводом всех подходящих x

Когда нужен: проверить, какие именно числа подходят, а не только их количество.

python

results = []
for x in range(1, 51):
    if (x % 4 == 0) and (x % 6 != 0):
        results.append(x)

print("Подходящие x:", results)
print("Количество:", len(results))

Полезно: для отладки и проверки условий.


Советы по использованию шаблонов

  1. Всегда проверяйте границы диапазона (range(start, end+1)).
  2. Используйте функции для сложных условий — это делает код читаемее.
  3. Тестируйте на малых диапазонах (например, от 1 до 20), чтобы убедиться, что логика верна.
  4. Оптимизируйте, если диапазон очень большой (например, 1≤x≤106): ищите математические закономерности вместо перебора.
  5. Следите за приоритетом операций — расставляйте скобки явно.

Эти шаблоны покрывают 95 % задач № 15 ЕГЭ. Комбинируйте их в зависимости от условия.