Добавить в корзинуПозвонить
Найти в Дзене

Что реально нужно для №8 про числа

? Как и многие другие, 8 задание весьма разнообразно, в разных источниках встречаются задачи и про слова, и про числа, и с повтором символов, и без, и упорядоченные, и неупорядоченные - в общем, кажется, что типов много. Но по факту в последние годы на ЕГЭ встречаются всего 2 типа: 1⃣ Подсчет количества чисел 2⃣ Поиск номера слова в упорядоченном списке И оба отлично решаются с помощью Python, главное - уметь пользоваться функцией product из библиотеки itertools. * permutations уметь пользоваться тоже не помешает, но именно product закрывает почти весь современный №8 Сегодня поговорим только про первый тип: числа! Как я выстраиваю объяснение для учеников? По факту 4 шага: 1️⃣ Перебор подходящих последовательностей (настройка product) 2️⃣ Склейка последовательности символов в строку с помощью метода join 3️⃣ Проверка всех условий * Особенно тут важно всегда сразу проверять, что число не начинается с нуля. Очень частая ошибка у ребят. 4️⃣ Увеличение счётчика для подходящих посл

Что реально нужно для №8 про числа?

Как и многие другие, 8 задание весьма разнообразно, в разных источниках встречаются задачи и про слова, и про числа, и с повтором символов, и без, и упорядоченные, и неупорядоченные - в общем, кажется, что типов много.

Но по факту в последние годы на ЕГЭ встречаются всего 2 типа:

1⃣ Подсчет количества чисел

2⃣ Поиск номера слова в упорядоченном списке

И оба отлично решаются с помощью Python, главное - уметь пользоваться функцией product из библиотеки itertools.

* permutations уметь пользоваться тоже не помешает, но именно product закрывает почти весь современный №8

Сегодня поговорим только про первый тип: числа!

Как я выстраиваю объяснение для учеников? По факту 4 шага:

1️⃣ Перебор подходящих последовательностей (настройка product)

2️⃣ Склейка последовательности символов в строку с помощью метода join

3️⃣ Проверка всех условий

* Особенно тут важно всегда сразу проверять, что число не начинается с нуля. Очень частая ошибка у ребят.

4️⃣ Увеличение счётчика для подходящих последовательностей

И подробнее всего останавливаемся, естественно, на 3 пункте. Условия я разделяю на 2 категории:

1️⃣ Удобно проверить сразу. Например, число начинается с пятерки, содержит ровно 3 двойки и т. д. Тут просто сразу, после проверки того, что число не начинается с 0, используем метод count, другие встроенные функции и всё проверяем.

2️⃣ Удобно сделать предварительные замены. Например, в числе должно быть 5 четных цифр. Для проверки этого заменим все четные цифры на какой-то один символ с помощью их перебора и метода replace, подсчитаем методом count. Тут чаще всего условия связаны с сочетаниями, например, "никакая четная цифра не стоит рядом с цифрой 5", или "никакие две четные и две нечетные цифры не стоят рядом". После всех замен их проверяем операторами in или not in.

Очень важно! Обращайте внимание учеников, что сначала проверяем условия, относящиеся к первой группе, а только потом делаем замены для проверки остального.

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

Например, если для одного условия нужно считать количество двоек, а для другого работать со всеми четными цифрами, то замены четных цифр можно делать только после первой проверки. Когда все четные цифры превратятся в какие-нибудь звездочки, отличить двойки от не двоек будет невозможно.

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

А для тех, кто хочет уметь решать по-разному, я даю аналитическое решение. Такая диверсификация навыков дает наиболее эффективный результат.

Если интересно, в следующем посте подробно разберу второй основной тип №8 - упорядоченные слова. Там у учеников тоже есть несколько очень типичных ловушек 👀

P. S. Интересно или нет определяю по реакциям 🔥

#информатика