Информатика | Илья Андрианов | itpy 🧑‍💻
1.02K subscribers
265 photos
20 videos
19 files
632 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 17627 #kege по информатике #ЕГЭ8
Автор: Резервный день 19.06.2024
Уровень: Базовый


🚩 Условие задачи:
Определите количество 15-ричных пятизначных чисел, в записи которых ровно одна цифра 8 и не менее двух цифр с числовым значением, превышающим 9.


🚩 Теоретическая справка:
В подобных задачах с цифрами обязательно необходимо добавлять проверку num[0] != '0', так как число не может начинаться с нуля.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in product('0123456789ABCDE', repeat=5):
num = ''.join(p)
if num[0] != '0' and num.count('8') == 1:
if len([x for x in num if int(x, 15) > 9]) >= 2:
cnt += 1
print(cnt)

# Ответ: 83175


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импортируем все функции из модуля itertools для работы с итераторами.


2⃣ cnt = 0
Инициализируем переменную счётчика cnt для подсчета подходящих комбинаций.


3⃣ for p in product('0123456789ABCDE', repeat=5):
Используем функцию product для генерации всех возможных комбинаций длиной 5 из символов '0123456789ABCDE'.


4⃣ num = ''.join(p)
Объединяем кортеж p в строку для получения текущего числа в виде строки.


5⃣ if num[0] != '0' and num.count('8') == 1:
Проверяем, что первое число не равняется '0' и цифра '8' встречается в строке ровно один раз.


6⃣ if len([x for x in num if int(x, 15) > 9]) >= 2:
Проверяем, что в числе присутствует как минимум две цифры, больше 9 в шестнадцатеричном представлении, то есть 'A', 'B', 'C', 'D', 'E'.


7⃣ cnt += 1
Если все условия выполнены, увеличиваем счётчик cnt на 1.


8⃣ print(cnt)
Выводим итоговое значение счётчика cnt, которое соответствует количеству подходящих комбинаций.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач 😼
Please open Telegram to view this post
VIEW IN TELEGRAM
633
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 17862 #kege по информатике #ЕГЭ8
Автор: Демоверсия 2025
Уровень: Базовый


🚩 Условие задачи:
Определите количество 12-ричных пятизначных чисел, в записи которых ровно одна цифра 7 и не более трёх цифр с числовым значением, превышающим 8.


🚩 Теоретическая справка:
Базовая задачка с комбинаторикой цифр. Не забудьте, что в таких задачах необходимо проверять наличие 0 на первой позиции.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in product('0123456789AB', repeat=5):
s = ''.join(p)
if s[0] != '0' and s.count('7') == 1:
if len([x for x in s if x > '8']) <= 3:
cnt += 1
print(cnt)

# Ответ: 67476


👩‍💻 Комментарии к коду:

1️⃣
from itertools import *
Импортируем все функции из модуля itertools, который содержит функции для работы с итерациями.


2⃣ cnt = 0
Инициализируем переменную cnt, которая будет использоваться для подсчета валидных комбинаций.


3⃣ for p in product('0123456789AB', repeat=5):
Генерируем декартово произведение символов '0123456789AB' длиной 5, создавая все возможные комбинации.


4⃣ s = ''.join(p)
Преобразуем кортеж p (содержащий текущую комбинацию) в строку s.


5⃣ if s[0] != '0' and s.count('7') == 1:
Проверяем, что первый символ строки не является '0' и что символ '7' встречается ровно один раз.


6⃣ if len([x for x in s if x > '8']) <= 3:
Создаем список из символов строки s, которые больше '8', и проверяем, что таких символов не более трех.


7⃣ cnt += 1
Увеличиваем счетчик cnt на 1, если предыдущие условия выполнены.


8⃣ print(cnt)
Выводим общее количество валидных комбинаций, соответствующих заданным критериям.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
2543
У нас уже собралась неплохая такая подборка 8 номеров, сохраняем и пользуемся! #ЕГЭ8 #useful


🚩 Разбор номера 17671 #kege по информатике #ЕГЭ8
Автор: Пересдача 04.07.2024
Уровень: Базовый


🚩 Разбор номера 17627 #kege по информатике #ЕГЭ8
Автор: Резервный день 19.06.2024
Уровень: Базовый


🚩 Разбор номера 5626 #kege по информатике #ЕГЭ8

🚩 Разбор номера 8417 #kege по информатике #ЕГЭ8

🚩 Разбор номера 15947 #reshu по информатике #ЕГЭ8
Уровень: Базовый

🚩 Разбор номера 4199 #polyakov по информатике #ЕГЭ8
Уровень: Сложный

🚩 Разбор номера 12917 #kege по информатике #ЕГЭ8
Автор: PRO100ЕГЭ
Уровень:
Базовый

🚩 Разбор номера из нового варианта #statgrad по информатике #ЕГЭ8
Автор: Статград
Уровень: Базовый


🚩 Разбор номера 11827 #kege по информатике #ЕГЭ8
Автор: (Л. Шастин)
Уровень: Средний


🚩 Разбор номера 10090 #kege по информатике #ЕГЭ8
Уровень: Базовый


🚩 Разбор номера 12240 #kege по информатике #ЕГЭ8
Уровень:
Базовый

🚩 Разбор номера 11827 #kege по информатике #ЕГЭ8
Автор: (Л. Шастин)
Уровень: Средний


🚩 Разбор номера 17521 #kege по информатике #ЕГЭ8
Автор: Основная волна 07.06.24
Уровень: Базовый


🚩 Разбор номера 17862 #kege по информатике #ЕГЭ8
Автор: Демоверсия 2025
Уровень: Базовый


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
843
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 7667 #reshu по информатике #ЕГЭ8
Автор: РЕШУ ЕГЭ
Уровень: Базовый


🚩 Условие задачи:
Сколько слов длины 5, начинающихся с гласной буквы, можно составить из букв Е, Г, Э? Каждая буква может входить в слово несколько раз.


🚩 Теоретическая справка:
Крайне интересная задача, так как позволяет представить вот такое простое и эстетичное решение. Стандартное решение я постараюсь приложить в комментариях к этому посту.


👩‍💻 Код решения:
from itertools import product
print([slovo[0] in 'ЕЭ' for slovo in product('ЕГЭ', repeat=5)].count(True))

# Ответ: 162


👩‍💻 Комментарии к коду:

1⃣ from itertools import product
Импортируем функцию product из модуля itertools, которая позволяет генерировать декартово произведение итераторов.


2⃣ print([slovo[0] in 'ЕЭ' for slovo in product('ЕГЭ', repeat=5)]
В генераторе мы пробегаем все получившиеся слова через функцию product и если первый элемент слова является буквами Е или Э, то в список будет падать bool значение True.


3⃣ .count(True))
Считаем количество истинных значений (True) в полученном списке и выводим это значение на экран.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
3644
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор этого номера #yandex по информатике #ЕГЭ8
Автор: Яндекс учебник
Уровень: Простая


🚩 Условие задачи:
Артём составляет пятибуквенные слова из букв своего имени. Он ввёл два правила: не повторять буквы в одном слове и не ставить гласные первыми и последними одновременно.

Сколько таких слов может составить Артём?


🚩 Теоретическая справка:
Обратите внимание на этот if, интересная штука и не самая очевидная.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in permutations('Артём'.upper()):
word = ''.join(p)
if not(word[0] in 'АЁ' and word[-1] in 'АЁ'):
cnt += 1
print(cnt)

# Ответ: 108


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
- Импортируются все функции и классы из модуля itertools, который предоставляет инструменты для создания итераторов.


2⃣ cnt = 0
- Инициализируется переменная cnt, которая будет использоваться для подсчета количества подходящих перестановок.


3⃣ for p in permutations('Артём'.upper()):
- Запускается цикл for, который проходит по всем возможным перестановкам заглавных букв слова "Артём".


4⃣ word = ''.join(p)
- Перестановка p преобразуется в строку и сохраняется в переменной word.


5⃣ if not(word[0] in 'АЁ' and word[-1] in 'АЁ'):
- Проверяется, начинается ли слово с буквы из множества 'АЁ' и заканчивается ли также на букву из того же множества; если это не так, выполняется следующий шаг.


6⃣ cnt += 1
- Увеличивается счетчик cnt на 1, если условие в предыдущей строке истинно.


7⃣ print(cnt)
- Выводится общее количество перестановок, удовлетворяющих заданному условию.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🔥43🤔1
🚩 Разбор номера #yandex по информатике #ЕГЭ8
Автор: Джобс Е.
Уровень: Средний


🚩 Условие задачи:
Катя составляет 5-буквенные слова из букв слова АПРЕЛЬ и упорядочивает их в обратном алфавитном порядке.

Вот начало списка:
1. ЬЬЬЬЬ
2. ЬЬЬЬР
3. ЬЬЬЬП
4. ЬЬЬЬЛ
5. ЬЬЬЬЕ
6. ЬЬЬЬА
7. ЬЬЬРЬ

Сколько слов, оканчивающихся на Ь, запишет Катя, если заполнит список до 387 позиции?



👩‍💻 Код решения:
from itertools import *
n = 0
cnt = 0
for p in product(sorted('АПРЕЛЬ', reverse=True), repeat=5):
word = ''.join(p)
n += 1

if word[-1] == 'Ь':
cnt += 1
print(word)

if n >= 387:
break

print(cnt)

# Ответ: 65


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
- Импортируются все функции и классы из модуля itertools, который предоставляет инструменты для создания итераторов.


2⃣ n = 0
- Инициализируется переменная n для подсчета количества сгенерированных комбинаций.


3⃣ cnt = 0
- Инициализируется переменная cnt для подсчета слов, заканчивающихся на букву 'Ь'.


4⃣ for p in product(sorted('АПРЕЛЬ', reverse=True), repeat=5):
- Запускается цикл for, который создает все возможные кортежи длиной 5 из букв слова 'АПРЕЛЬ', отсортированных в обратном порядке.


5⃣ word = ''.join(p)
- Кортеж p преобразуется в строку word.


6⃣ n += 1
- Увеличивается счетчик n на 1, чтобы отслеживать количество проверенных слов.


7⃣ if word[-1] == 'Ь':
- Проверяется, заканчивается ли слово word на букву 'Ь'.


8⃣ cnt += 1
- Увеличивается счетчик cnt, если слово заканчивается на 'Ь'.


0⃣ print(word)
- Выводится слово, если оно заканчивается на 'Ь'.


1⃣0⃣ if n >= 387:
- Проверяется, достигло ли количество проверенных слов значения 387.


1⃣1⃣ break
- Завершается цикл, если количество проверенных слов достигает 387.


1⃣2⃣ print(cnt)
- Выводится общее число слов, заканчивающихся на 'Ь'.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач 😼
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🔥31🫡11
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 17799 #kege по информатике #ЕГЭ8
Автор: (В. Зарянкин)
Уровень: Средний


🚩 Условие задачи:
Все четырёхбуквенные слова, в составе которых могут быть только русские буквы А, Р, Г, У, М, Е, Н, Т, записаны в алфавитном порядке и пронумерованы начиная с 1.

Вот начало списка:
1. АААА
2. АААГ
3. АААЕ
4. АААМ
5. АААН

Под каким номером в списке идёт последнее слово, в котором все буквы различны и все символы располагаются в алфавитном порядке?



👩‍💻 Код решения:
from itertools import *
for n, p in enumerate(product(sorted('АРГУМЕНТ'), repeat=4), 1):
slovo = ''.join(p)
if len(slovo) == len(set(slovo)): # все буквы различны
# print(slovo) # АГЕМ
# print(list(slovo)) # ['А', 'Г', 'Е', 'М']
# print(sorted(slovo)) # ['А', 'Г', 'Е', 'М']
if list(slovo) == sorted(slovo):
print(n)

# Ответ: 2424


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
- Импортируются все функции и классы из модуля itertools, который предоставляет инструменты для создания итераторов.


2⃣ for n, p in enumerate(product(sorted('АРГУМЕНТ'), repeat=4), 1):
- Цикл for перебирает все возможные комбинации длиной 4 из букв слова 'АРГУМЕНТ', отсортированных в алфавитном порядке. Каждая комбинация сопровождается порядковым номером n, начиная с 1.


3⃣ slovo = ''.join(p)
- Комбинация p преобразуется в строку и сохраняется в переменной slovo.


4⃣ if len(slovo) == len(set(slovo)): # все буквы различны
- Проверяется, содержатся ли в строке slovo только уникальные символы, сравнивая длину строки и множества из этой строки.


5⃣ if list(slovo) == sorted(slovo):
- Проверяется, упорядочены ли буквы в slovo в алфавитном порядке.


6⃣ print(n)
- Выводится порядковый номер текущей комбинации, если выполнены оба условия уникальности и упорядоченности букв.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут ответы на все вопросы 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥4🔥2
8⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ8 #шпора

Ссылка на подборку с разборами 8 номеров на канале, сохраняйте и отправляйте другу: click here

И пару полезных стрчоку уже здесь:

🚩 for s in itertools.permutations('ЯРОСЛАВ', 5):
Цикл for, который проходит через все перестановки длиной 5 букв из заданной строки 'ЯРОСЛАВ'. Каждая перестановка сохраняется в переменной s.


🚩 for s in itertools.product('АЕКНС', repeat=6):
Цикл for, в котором происходит итерация по всем комбинациям символов из 'АЕКНС' длиной 6 символов, сгенерированным с помощью метода product из модуля itertools.


🚩 slovo = ''.join(s)
Преобразования кортежа символов "s" в строку символов "slovo".


🚩 if slovo[0] not in '1357':
Проверка условия, что элемент слова по индексу "0" является одним из символов набора.


🚩 if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
Функция all() позволяет проверять множественные вхождения элементов в строку. В данном случаи ни одно из чисел "71 17 37 73 57 75 77" не должно попадаться в строку num.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥92🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор этого номера #yandex по информатике #ЕГЭ8
Автор: Яндекс Учебник
Уровень: Средний


🚩 Условие задачи:
Определите количество пятизначных чисел в 14-ричной системе счисления, в записи которых цифры из набора ABCD не стоят рядом с нечётными цифрами из набора: 13579.


🚩 Теоретическая справка:
Обратите внимание! Что условия, которые требуют замены элементов строки через num = num.replace(x, 'A') необходимо ставить в самом конце программы! Чтобы не повредить все предыдущие условия задач подобного типа.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in product('0123456789ABCD', repeat=5):
num = ''.join(p)
if num[0] != '0':
for x in 'ABCD':
num = num.replace(x, 'A')
for x in '13579':
num = num.replace(x, '1')
if '1A' not in num and 'A1' not in num:
cnt += 1
print(cnt)

# Ответ: 217888


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импортируем все функции из модуля itertools, который предоставляет различные функции для работы с итераторами.


2⃣ cnt = 0
Инициализируем переменную cnt для подсчета количества допустимых комбинаций.


3⃣ for p in product('0123456789ABCD', repeat=5):
Используем функцию product для генерации всех возможных комбинаций длиной 5 из символов '0123456789ABCD'.


4⃣ num = ''.join(p)
Объединяем текущую комбинацию p в строку num.


5⃣ if num[0] != '0':
Проверяем, чтобы первая цифра num не была '0', чтобы избежать некорректных чисел.


6⃣ for x in 'ABCD':
Запускаем цикл, чтобы заменить все символы 'A', 'B', 'C' и 'D' на 'A'.


7⃣ num = num.replace(x, 'A')
Заменяем текущий символ x на 'A' в строке num.


8⃣ for x in '13579':
Запускаем цикл, чтобы заменить все нечетные цифры '1', '3', '5', '7' и '9' на '1'.


0⃣ num = num.replace(x, '1')
Заменяем текущий символ x на '1' в строке num.


🔟 if '1A' not in num and 'A1' not in num:
Проверяем, чтобы строка num не содержала подстроки '1A' или 'A1'.


1⃣1⃣ cnt += 1
Если предыдущая проверка прошла успешно, увеличиваем счетчик cnt на 1.


1⃣2⃣ print(cnt)
Выводим значение cnt, что соответствует количеству допустимых комбинаций.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 3700 #reshu по информатике #ЕГЭ8
Автор: Решу ЕГЭ
Уровень: Базовый


🚩 Условие задачи:
Все 5-буквенные слова, составленные из букв Б, К, Ф, Ц, записаны
в алфавитном порядке и пронумерованы. Вот начало списка:
1. БББББ
2. ББББК
3. ББББФ
4. ББББЦ
5. БББКБ

Запишите слово, которое стоит на 486-м месте от начала списка.


🚩 Примечание к разбору:
Разберем задачу 3 разными способами и каждый выберет, тот способ,который ему понравился.



👩‍💻 Ход решения номер 🚩
s = sorted('БКФЦ')
print(s) # ['Б', 'К', 'Ф', 'Ц']
n = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
slovo = a + b + c + d + e
n += 1
if n == 486:
print(n, slovo)


🚩 Комментарии к коду:
s = sorted('БКФЦ')

1⃣ Создается список s, содержащий отсортированные символы строки 'БКФЦ'.

print(s)  # ['Б', 'К', 'Ф', 'Ц']

2⃣ Выводится список s для проверки.

n = 0

3⃣ Вводим счетчик n, который будем использовать для подсчета количества сгенерированных слов.

for a in s:
for b in s:
for c in s:
for d in s:
for e in s:

4⃣ Перебираем все возможные комбинации из 5 символов, используя элементы списка s. Каждый цикл отвечает за одну позицию в слове.

slovo = a + b + c + d + e

5⃣ Формируется слово slovo путем объединения символов a, b, c, d, e.

n += 1

6⃣ Счетчик n увеличивается на 1 для каждой новой комбинации.

if n == 486:
print(n, slovo)

7⃣ Если счетчик n достигает значения 486, выводится номер комбинации и само слово.


👩‍💻 Ход решения номер 🚩
from itertools import *
n = 0
for p in product(sorted('БКФЦ'), repeat=5):
slovo = ''.join(p)
n += 1
if n == 486:
print(n, slovo)


🚩 Комментарии к коду:
from itertools import *

1⃣ Импортируется модуль itertools, который предоставляет функции для работы с комбинациями.

n = 0

2⃣ Вводим счетчик n для подсчета количества сгенерированных слов.

for p in product(sorted('БКФЦ'), repeat=5):

3⃣ Используется функция product, которая генерирует все возможные комбинации из символов 'Б', 'К', 'Ф', 'Ц' с длиной 5 .

slovo = ''.join(p)

4⃣ Каждый элемент p преобразуется в строку slovo с помощью метода join.

n += 1

5⃣ Счетчик n увеличивается на 1 для каждой новой комбинации.

if n == 486:
print(n, slovo)

6⃣ Если счетчик n достигает значения 486, выводится номер комбинации и само слово.


👩‍💻 Ход решения номер 🚩
from itertools import *
for n, p in enumerate(product(sorted('БКФЦ'), repeat=5), 1):
slovo = ''.join(p)
if n == 486:
print(n, slovo)


🚩 Комментарии к коду:
from itertools import *

1⃣ Импортируется модуль itertools.

for n, p in enumerate(product(sorted('БКФЦ'), repeat=5), 1):

2⃣ Используем функцию enumerate, которая добавляет счетчик n к каждому элементу, генерируемому функцией product. Счетчик начинается с 1.

slovo = ''.join(p)

3⃣ Каждый элемент p преобразуется в строку slovo с помощью метода join.

if n == 486:
print(n, slovo)

4⃣ Если счетчик n достигает значения 486, выводится номер комбинации и само слово.

#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍843🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 11616 #kege по информатике #ЕГЭ8
Автор: М. Ишимов
Уровень: Средний


🚩 Условие задачи:
Сколько существует семнадцатеричных пятизначных чисел, не содержащих в своей записи более двух цифр 1, при этом никакая нечётная цифра не стоит рядом с цифрой 1?


🚩 Теоретическая справка:
Данный способ позволяет перебрать алфавит и отсортировать его.


👩‍💻 Код решения:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
print(alphabet[3:17:2])
from itertools import *
cnt = 0
for s in product(alphabet[:17], repeat=5):
num = ''.join(s)
if num[0] != '0':
if num.count('1') <= 2:
for a in alphabet[3:17:2]:
num = num.replace(a, '*')
if '1*' not in num and '*1' not in num and '11' not in num:
cnt += 1

print(cnt)

Ответ: 1117608


👩‍💻 Комментарии к коду:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')

1⃣ Создается строка, содержащая цифры от 0 до 9 и заглавные буквы английского алфавита. Функция sorted сортирует символы в алфавитном порядке.

print(alphabet[3:17:2])

2⃣ Выводится часть алфавита с индексами от 3 до 17 (не включая 17) с шагом 2.

from itertools import *

3⃣ Импортируется модуль itertools, который предоставляет функции для работы с генерациями комбинаций.

cnt = 0

4⃣ Создается переменная cnt, которая будет использоваться для подсчета подходящих комбинаций.

for s in product(alphabet[:17], repeat=5):

5⃣ Используется функция product, которая генерирует все возможные комбинации длиной 5 из первых 17 символов алфавита (alphabet[:17]).
Каждая комбинация s представляет собой кортеж из 5 символов.

num = ''.join(s)

6⃣ Кортеж символов s преобразуется в строку num с помощью метода join.

if num[0] != '0':

7⃣ Проверяется, что первый символ строки не равен '0'.

if num.count('1') <= 2:

8⃣ Проверяется, что символ '1' встречается в строке не более двух раз.

for a in alphabet[3:17:2]:
num = num.replace(a, '*')

0⃣ Каждый символ из списка заменяется на '*' в строке.

if '1*' not in num and '*1' not in num and '11' not in num:

🔟 Проверяется, что в строке нет подстрок '1*', '*1' и '11'.

cnt += 1

1⃣1⃣ Если все условия выполнены, счетчик увеличивается на 1.

print(cnt)

1⃣2⃣ В конце программы выводится значение счетчика, которое равно количеству подходящих комбинаций.

#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3❤‍🔥2
🚩 Разбор номера 11201 #kege по информатике #ЕГЭ8
Автор: С.Якунин
Уровень: Средний


🚩 Условие задачи:
Полина составляет слова, переставляя буквы в слове ПАЙТОН. Сколько слов может составить Полина, если известно, что сумма порядковых номеров гласных букв, в каждом из них, равна 6? Буквы нумеруются слева направо, начиная с единицы.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in permutations('ПАЙТОН'):
word = ''.join(p)
summa = word.index('А')+1 + word.index('О')+1
if summa == 6:
cnt += 1
print(cnt)

Ответ: 96


👩‍💻 Комментарии к коду:

1⃣from itertools import *
Импортируется модуль itertools для работы с перестановками (permutations).


2⃣ cnt = 0
Создается счетчик cnt, который будет считать количество подходящих перестановок.


3⃣ for p in permutations('ПАЙТОН'):
Цикл перебирает все возможные перестановки букв в слове 'ПАЙТОН'.


4⃣ word = ''.join(p)
Каждая перестановка p (это кортеж букв) объединяется в строку word.


5⃣ summa = word.index('А')+1 + word.index('О')+1
- word.index('А') возвращает индекс буквы 'А' в строке (начиная с 0).
- +1 добавляется, чтобы считать позицию с 1 (как в обычном порядке).
- Аналогично для буквы 'О'.
- summa — это сумма позиций букв 'А' и 'О' в текущей перестановке.


6⃣ if summa == 6:
Проверяется, равна ли сумма позиций 'А' и 'О' 6.


7⃣ cnt += 1
Если условие выполнено (summa == 6), счетчик увеличивается на 1.


8⃣ print(cnt)
В конце выводится общее количество подходящих перестановок.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍4🔥4
🚩 Разбор номера 15413 #kege по информатике #ЕГЭ8
Автор: А.Вдовин
Уровень:
Средней

🚩 Условие задачи:
Найдите количество четырехзначных чисел в девятеричной системе счисления, в которых есть ровна одна цифра 8, а сумма цифр слева от нее равна сумме цифр справа от нее.

Примечание: если слева или справа от 8 цифр нет, то сумма считается равной нулю


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in product('012345678', repeat=4):
num = ''.join(p)
if num[0] != '0':
if num.count('8') == 1:
i = num.index('8')
summa_left = sum(map(int, num[:i]))
summa_right = sum(map(int, num[i+1:]))
if summa_left == summa_right:
cnt += 1
print(cnt)

Ответ: 64


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импорт всех функций из модуля itertools, который предоставляет удобные инструменты для работы с итераторами


2⃣ cnt = 0
Инициализация счётчика cnt, который будет хранить количество подходящих чисел


3⃣ for p in product('012345678', repeat=4):
Цикл по всем возможным комбинациям длиной 4 из цифр '012345678' (включая повторы)


4⃣ num = ''.join(p)
Преобразование текущей комбинации p в строку num


5⃣ if num[0] != '0':
Проверка, что число не начинается с нуля (чтобы избежать ведущих нулей)


6⃣ if num.count('8') == 1:
Проверка, что в числе ровно одна цифра '8'


7⃣ i = num.index('8')
Нахождение индекса цифры '8' в строке num


8⃣ summa_left = sum(map(int, num[:i]))
Вычисление суммы цифр слева от '8' (преобразование среза строки в числа и их суммирование)


0⃣ summa_right = sum(map(int, num[i+1:]))
Вычисление суммы цифр справа от '8'


🔟 if summa_left == summa_right:
Проверка равенства сумм слева и справа от '8'


1⃣1⃣ cnt += 1
Увеличение счётчика, если условие выполнено


1⃣2⃣ print(cnt)
Вывод итогового количества подходящих чисел


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍53❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
8⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ8 #шпора

📌 Ссылка на шпаргалку/методичку на Notion и несколько полезных моментов уже здесь:

Подготовили для вас методическое пособие по решению 8 номера! Сохраняйте все, что понадобится на экзамене 😼

🚩 for s in itertools.permutations('ЯРОСЛАВ', 5):
Цикл for, который проходит через все перестановки длиной 5 букв из заданной строки 'ЯРОСЛАВ'. Каждая перестановка сохраняется в переменной s.


🚩 for s in itertools.product('АЕКНС', repeat=6):
Цикл for, в котором происходит итерация по всем комбинациям символов из 'АЕКНС' длиной 6 символов, сгенерированным с помощью метода product из модуля itertools.


🚩 slovo = ''.join(s)
Преобразования кортежа символов "s" в строку символов "slovo".


🚩 if slovo[0] not in '1357':
Проверка условия, что элемент слова по индексу "0" является одним из символов набора.


🚩 if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
Функция all() позволяет проверять множественные вхождения элементов в строку. В данном случаи ни одно из чисел "71 17 37 73 57 75 77" не должно попадаться в строку num.

В комментариях закреплю файл в формате pdf 👇

#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7🔥5👍4
🚩 Разбор номера из нового варианта #statgrad по информатике #ЕГЭ8
Автор: Статград
Уровень: Базовый


🚩 Условие задачи:
Все десятибуквенные коды, составленные из букв, входящих в слово
СКАНЕР, расположены в алфавитном порядке и пронумерованы.

Определите количество кодов, для которых одновременно выполнены условия:
1) номер кода в списке делится на 3;
2) первая буква кода – согласная;
3) код содержит ровно одну букву Р.

Кликни, чтобы развернуть полностью 👆


👩‍💻 Код решения:
from itertools import product
num = 0
cnt = 0
for s in product(sorted('СКАНЕР'), repeat=10):
word = ''.join(s)
num += 1
if num % 3 == 0:
if word[0] in 'СКНР':
if word.count('Р') == 1:
cnt += 1
print(cnt)

Ответ: 4531250


👩‍💻 Комментарии к коду:

1⃣ from itertools import product
Импорт функции product из модуля itertools, которая создает все возможные комбинации длиной n из указанных элементов.


2⃣ num = 0
Инициализация переменной num для отслеживания общего количества рассмотренных комбинаций.


3⃣ cnt = 0
Инициализация переменной cnt для подсчета количества комбинаций, удовлетворяющих условиям задачи.


4⃣ for s in product(sorted('СКАНЕР'), repeat=10):
Цикл for, в котором перебираются все возможные комбинации длиной 10 символов из отсортированных букв 'СКАНЕР'.


5⃣ word = ''.join(s)
Объединение символов из текущей комбинации в одно слово для дальнейшей проверки.


6⃣ num += 1
Увеличение счетчика num на 1 для отслеживания количества рассмотренных комбинаций.


7⃣ if num % 3 == 0:
Проверка, что номер рассматриваемой комбинации делится на 3 без остатка.


8⃣ if word[0] in 'СКНР':
Проверка, содержит ли первая буква слова 'С', 'К', 'Н' или 'Р'.


0⃣ if word.count('Р') == 1:
Проверка, что буква 'Р' встречается в слове ровно 1 раз.


1⃣0⃣ cnt += 1
Увеличение счетчика cnt на 1, если текущая комбинация удовлетворяет всем условиям.


1⃣1⃣ print(cnt)
Вывод количества комбинаций, удовлетворяющих заданным условиям.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8🔥551
🚩 Разбор номера 7029 #kege по информатике #ЕГЭ8
Автор: А.Богданов
Уровень: Базовый


🚩 Условие задачи:
Марина собирает восьмибуквенные слова из букв своего имени. Все буквы могут многократно повторяться. На каком месте окажется имя МАРИАННА в отсортированном по алфавиту списке сгенерированных слов? Нумерация начинается с 1.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
from itertools import *

for n, p in enumerate(product(sorted('МАРИН'), repeat=8), 1):
word = ''.join(p)
if word == 'МАРИАННА':
print(n)
break

Ответ: 169466


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импорт всех функций из модуля itertools, включая функцию product, которая будет использоваться для генерации декартова произведения


2⃣ for n, p in enumerate(product(sorted('МАРИН'), repeat=8), 1):
Запуск цикла, где:

• sorted('МАРИН') сортирует символы строки 'МАРИН' в алфавитном порядке (['А', 'И', 'М', 'Н', 'Р'])

• product(..., repeat=8) генерирует все возможные комбинации длины 8 из этих символов

• enumerate(..., 1) нумерует каждую комбинацию, начиная с 1

• n хранит номер текущей комбинации, p — саму комбинацию в виде кортежа символов


3⃣ word = ''.join(p)
Преобразует кортеж символов p в строку word


4⃣ if word == 'МАРИАННА':
Проверяет, совпадает ли текущая комбинация word с искомым словом 'МАРИАННА'


5⃣ print(n)
Если условие выполняется, выводит номер комбинации n


6⃣ break
Прерывает цикл после нахождения нужного слова


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥9👍44
8⃣ Шпаргалка для номера #ЕГЭ8 #шпора

Собрал для вас основные моменты, которые важно знать при решении 8 номера. Для закрепления материала оставляю ссылку на подборку всех 8 номеров разобранных на моем канале.

📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ


🚩 Разбор номера 21407 #kege по информатике #ЕГЭ8
Автор: Досрочная волна 2025
Уровень: Базовый

from itertools import *

k = 0
for i in product('ДГИАШЭ', repeat=5):
i = ''.join(i)
if i[0] not in 'ИАЭ' and i[-1] not in 'ДГШ':
k += 1
print(k)

В данном задании необходимо найти какое количество различных кодовых слов можно составить.


🚩 Разбор номера 21894 #kege по информатике #ЕГЭ8
Автор: Открытый вариант 2025
Уровень: Базовый

from itertools import *

k = 0
for i in permutations('0123456789', 4):
i = ''.join(i)
if i[0] != '0':
i = i.replace('0', '2').replace('4', '2').replace('6', '2').replace('8', '2')
i = i.replace('3', '1').replace('5', '1').replace('7', '1').replace('9', '1')
if '11' not in i and '22' not in i:
k += 1
print(k)

В данном прототипе нужно найти количество чисел, которые можно составить.


🚩 Разбор номера 21703 #kege по информатике #ЕГЭ8
Автор: ЕГКР 19.04.25
Уровень: Базовый

from itertools import *

number = 0
for i in product(sorted('ПОБЕДА'), repeat=6):
i = ''.join(i)
number += 1
if i[0] == 'О' and len(i) == len(set(i)):
if number % 2 == 0:
print(number)

Здесь нужно учесть исходный список слов и вывести номер подходящего слова.

📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion



✔️ Супер! 30 реакций собрали, тогда на этом посте собираем 35 и идем дальше?)


#⃣ Вся теория для ЕГЭ в одном месте
#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥2611🔥822
🚩 Разбор #ДВ2025 номера #ЕГЭ8 по информатике

🚩 Условие задачи:
Даны 9 буквы слова КОМПЬЮТЕР в алфавитном порядке и нужно найти код с нечетным номером, который не начинается на гласные буквы и содержит одну букву К.


👩‍💻 Код решения:
from itertools import *
n = 0
for p in product(sorted('КОМПЬЮТЕР'), repeat=6):
n += 1
word = ''.join(p)
if word[0] not in 'ОЮЕ':
if word.count('К') == 1:
if n % 2 != 0:
print(n)

# Ответ: 472385



#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍6🔥5
🚩 Разбор #ДВ2025 номера #ЕГЭ8 по информатике

🚩 Условие задачи:
Все пятибуквенные слова, составленные из букв В, Е, Н, Е, Р, А записаны в алфавитном порядке и пронумерованы.

Под каким нечетным номером в списке стоит последнее слово, которое не начинается с буквы Н и содержит ровно две буквы В?



👩‍💻 Код решения:
from itertools import *

k = 0
alph = sorted('ВЕНЕРА')
A = product(alph, repeat=5)
for i in A:
i = ''.join(i)
k += 1
if i[0] != 'Н' and i.count('В') == 2 and k % 2 != 0:
print(k)

# Ответ: 7607


#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥76👍4
🚩 Разбор этого номера #yandex по информатике #ЕГЭ8
Автор: Джобс Е.
Уровень:
Простой

🚩 Условие задачи:
Сколько существует 4-разрядных четверичных чисел, в которых хотя бы одна цифра встречается не менее двух раз?


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in product('0123', repeat=4):
num = ''.join(p)
if num[0] != '0':
if any(num.count(x) >= 2 for x in num):
cnt += 1
print(cnt)

Ответ: 174

👩‍💻 Комментарии к коду:

1⃣ from itertools import *
- Импорт всех функций из модуля itertools (используется функция product)


2⃣ cnt = 0
- Инициализация счетчика для подсчета подходящих комбинаций


3⃣ for p in product('0123', repeat=4):
- Цикл по всем возможным 4-значным комбинациям из цифр 0,1,2,3 (с повторами)
- Например: ('0','0','0','0'), ('0','0','0','1'), ..., ('3','3','3','3')


4⃣ num = ''.join(p)
- Объединение кортежа символов в строку (например, ('1','2','3','0') → '1230')


5⃣ if num[0] != '0':
- Проверка, что число не начинается с 0 (исключаем 4-значные числа с ведущим нулем)


6⃣ if any(num.count(x) >= 2 for x in num):
- Проверка, что в числе есть хотя бы одна цифра, которая повторяется 2 или более раз
- any() возвращает True, если хотя бы один элемент удовлетворяет условию


7⃣ cnt += 1
- Если оба условия выполнены (не начинается с 0 и есть повторяющиеся цифры), увеличиваем счетчик


8⃣ print(cnt)
- Вывод общего количества подходящих комбинаций


#⃣ Полный список разборов в одном месте
🔜Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥3🫡3