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

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
С Новым годом, друзья! 🎄
Пусть 2025 год дарит вам вдохновение, исполнение желаний и незабываемые впечатления!🎅

Картинку сгенерировал через MidJourney 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
146🔥5👍4
🚩🚩 Разбор этого номера #yandex по информатике #ЕГЭ17
Автор: Яндекс Учебник
Уровень: Средний

🚩 Условие задачи:
Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.

В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.

В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.


🚩 Теоретическая справка:
Интересный пример, так как нам приходится рассматривать не только пару/тройку символов, как в основных задачах, но сразу 6-ку символов!


👩‍💻 Код решения:
M = [int(s) for s in open('files/17.txt')]
R = []
for i in range(len(M)-5):
x, y, z, w, r, t = M[i:i+6]
if (z + w) > (x + y) and (z + w) > (r + t):
if z + w > 0 and x + y > 0 and r + t > 0:
R.append(z * w)
print(len(R), min(R))

# Ответ: 610 -123157359


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

1⃣ M = [int(s) for s in open('files/17.txt')]
- Открывает файл 'files/17.txt', читает его и преобразует каждую строку в целое число, создавая список M.


2⃣ R = []
- Создает пустой список R для хранения результатов, которые удовлетворяют условиям.


3⃣ for i in range(len(M)-5):
- Запускает цикл по элементам списка M, при этом гарантируется, что для каждой итерации хватит шести элементов.


4⃣ x, y, z, w, r, t = M[i:i+6]
- Извлекает шесть подряд идущих элементов из списка M, начиная с позиции i, и присваивает их переменным x, y, z, w, r и t.


5⃣ if (z + w) > (x + y) and (z + w) > (r + t):
- Проверяет, что сумма z и w больше суммы x и y, а также больше суммы r и t.


6⃣ if z + w > 0 and x + y > 0 and r + t > 0:
- Дополнительно проверяет, что каждая из сумм z + w, x + y и r + t больше нуля.


7⃣ R.append(z * w)
- Если условия выполнены, добавляет произведение z и w в список R.


8⃣ print(len(R), min(R))
- Выводит количество элементов в списке R и минимальное значение из этого списка.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5🔥3
Стало интересно узнать, какие прототипы 17-го номера вызывают у вас наибольшие сложности 🤔
Anonymous Poll
30%
1⃣ Два подряд идущих элемента
49%
2⃣ Три подряд идущих элемента
82%
3⃣ Два различных элемента
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера #statgrad по информатике #ЕГЭ17
Автор: Статград
Уровень:
Сложный

🚩 Условие задачи:
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.


👩‍💻 Код решения:
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []

for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]

if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]

if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))

print(len(result), max(result))

# Ответ: 260 106865


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

1⃣ numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.


2⃣ filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.


3⃣ result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.


4⃣ for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.


5⃣ # x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.


6⃣ length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].


7⃣ if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.


8⃣ multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.


0⃣ multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.


1⃣0⃣ if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.


1⃣1⃣ if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.


1⃣2⃣ result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.


1⃣3⃣ print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥74❤‍🔥3
🚩🚩 Разбор номера 18257 #kege по информатике #ЕГЭ17
Автор: (Л. Шастин)
Уровень:
Средний

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

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

В данной задаче под парой подразумевается два идущих подряд элемента последовательности.


🚩 Теоретическая справка:
Мне эта задача очень понравилась, так как присутствует условие про номера элементов последовательности. Реализовать это не сложно, как оказалось, зато какая красота получилась! Обратите внимание, что происходит смещение по индексу на +1 элемент*


👩‍💻 Код решения:
R = []
M = [int(x) for x in open('17.txt')]
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))

# Ответ: 1000 811


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

1⃣ R = []
Инициализация пустого списка R, который будет хранить результаты.


2⃣ M = int(x) for x in open('0. files/17.txt')
Открытие файла '0. files/17.txt', чтение каждой строки, преобразование их в целые числа и сбор этих чисел в список M.


3⃣ for i in range(len(M)-1):
Начало цикла по всем элементам списка M, кроме последнего, с индексами от 0 до (длина M - 2).


4⃣ x, y = Mi, Mi+1
Присваивание текущего элемента M и следующего элемента M соседним переменным x и y соответственно.


5⃣ i, j = i+1, i+2
Расчет значений индексов i и j для проверки условия следующей строки.


6⃣ if (i + j) % 10 == max(M) % 10:
Условие: если сумма индексов i и j даёт остаток от деления на 10, равный остатку от деления максимального элемента M на 10, выполнить следующий блок.


7⃣ R.append(abs((x+y) - (i+j)))
Если условие выполнено, вычислить разность между суммой элементов x и y и суммой индексов i и j, взять модуль этой разности и добавить в список R.


8⃣ print(len(R), min(R))
Вывод на экран количества элементов в списке R и минимального значения в этом списке R.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач😼
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍7🔥6
Хочешь сдать ЕГЭ по математике на 80+?

🗣️Хочу лично порекомендовать Вам репетитора, который точно знает, как сдать ЕГЭ на 80+, даже если вы только решили начать подготовку.

👩‍💻Дарья – преподает математику более 5 лет, а сама заканчивает в этом году Бауманку, поэтому точно знает все о поступлении на технические и экономические специальности, а ее ученики учатся в топовых вузах России: МИФИ, МГУ, ВШЭ💋

📚Подробную информацию о занятиях по подготовке к экзаменах можно узнать в ее канале, а также всем новым подписчикам Дарья отправляет полезные материалы для подготовки к экзаменам. Нужно только подписаться на канал и написать сообщение в личку💋

Не откладывай подготовку занимайся с лучшими преподавателями уже сейчас и совершенствуйся с каждым днём!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍43
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 12249 #kege по информатике #ЕГЭ17
Автор: ЕГКР 16.12.23
Уровень: Базовый


🚩 Условие задачи:
Определите количество троек элементов последовательности, в которых хотя бы один из трёх элементов оканчивается на 3, а сумма элементов тройки не больше максимального элемента последовательности, являющегося пятизначным числом, которое оканчивается на 3.

В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.


🚩 Теоретическая справка:
В данной задаче очень удобно собрать отдельный список для элементов оканчивающихся на 3 (список А) и потом пробежать все лежащие в нем элементы, чтоб добавить условие с пятизначными символам (список D).


👩‍💻 Код решения:
D = [int(x) for x in open('0. files/17.txt')]
R = []
A = [x for x in D if abs(x) % 10 == 3]
B = [x for x in A if len(str(abs(x))) == 5]
for i in range(len(D) - 2):
x, y, z = D[i], D[i + 1], D[i + 2]
if ((x in A) + (y in A) + (z in A)) >= 1:
if (x + y + z) <= max(B):
R.append(x + y + z)
print(len(R), max(R))

# Ответ: 1767 99081


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

1⃣ D = int(x) for x in open('0. files/17.txt')
- Создаем список D, содержащий целые числа из файла '17.txt'.


2⃣ R = [ ]
- Инициализируем пустой список R для хранения результатов.


3⃣ A = x for x in D if abs(x) % 10 == 3
- Создаем список A, содержащий все числа из D, заканчивающиеся на 3.


4⃣ B = x for x in A if len(str(abs(x))) == 5
- Создаем список B, содержащий только те числа из A, которые являются пятиместными.


5⃣ for i in range(len(D) - 2):
- Начинаем цикл для перебора элементов списка D с индексом i от 0 до len(D) - 3.


6⃣ x, y, z = Di, Di + 1, Di + 2
- Присваиваем переменным x, y, z текущие и следующие два элемента из D.


7⃣ if ((x in A) + (y in A) + (z in A)) >= 1:
- Проверяем, содержится ли хотя бы одно из значений x, y, или z в списке A.


8⃣ if (x + y + z) <= max(B):
- Проверяем, меньше ли сумма x, y и z, чем максимальный элемент в B.


0⃣ R.append(x + y + z)
- Если обе проверки прошли, добавляем сумму x, y и z в список R.


🔟 print(len(R), max(R))
- Выводим количество элементов в списке R и максимальное значение из этого списка.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
29❤‍🔥4🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 13715 #kege по информатике #ЕГЭ24
Автор: kompege.ru
Уровень: Средний


🚩 Условие задачи:
Текстовый файл состоит из символов A, B, C, D и E.

Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых комбинация символов AB встречается ровно 50 раз.


🚩 Теоретическая справка:
Важно после разбиения не забыть добавить по одному элементу справа и слева к строке r, так как мы удаляем пары символов, а отдельные символы должны оставить.


👩‍💻 Код решения:
s = open('0. files/24.txt').readline()
s = s.split('AB')
maxi = 0
for i in range(len(s)-50):
r = 'B' + 'AB'.join(s[i:i+51]) + 'A'
maxi = max(maxi, len(r))
print(maxi)

# Ответ: 10128


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

1⃣ s = open('0. files/24.txt').readline()
# Открываем файл '0. files/24.txt' и читаем первую строку.


2⃣ s = s.split('AB')
# Разделяем строку на подстроки по разделителю 'AB' и сохраняем результат в список.


3⃣ maxi = 0
# Инициализируем переменную maxi, которая будет содержать максимальную длину найденной строки.


4⃣ for i in range(len(s)-50):
# Запускаем цикл, который будет проходить по индексам списка s от 0 до длины списка минус 50.


5⃣ r = 'B' + 'AB'.join(si:i+51) + 'A'
# Формируем новую строку r, представляющую собой соединение элементов списка s от текущего индекса i до i+50 с добавлением 'B' в начале и 'A' в конце.


6⃣ maxi = max(maxi, len(r))
# Обновляем значение maxi, если длина текущей строки r больше предыдущего значения maxi.


7⃣ print(maxi)
# Выводим максимальную длину строки, соответствующую заданным условиям.


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

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


🚩 Условие задачи:
Текстовый файл состоит из символов A, C, D, F и O.
Определите максимальное количество идущих подряд символов, среди которых не более 5 пар вида согласная + гласная в прилагаемом файле.


🚩 Теоретическая справка:
Чуть более сложная версия прошлой задачи.


👩‍💻 Код решения:
s = open('0. files/24.txt').readline()
s = s.replace('C', 'D').replace('F', 'D')
s = s.replace('O', 'A')
s = s.split('DA')
maxi = 0
for i in range(len(s)-5):
r = 'A' + 'DA'.join(s[i:i+6]) + 'D'
maxi = max(maxi, len(r))
print(maxi)

Ответ: 27


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

1⃣ s = open('24.txt').readline()
Открываем файл '0. files/24.txt' и читаем первую строку.


2⃣ s = s.replace('C', 'D').replace('F', 'D')
Заменяем символы 'C' и 'F' на 'D' во всей строке.


3⃣ s = s.replace('O', 'A')
Заменяем символ 'O' на 'A' во всей строке.


4⃣ s = s.split('DA')
Разделяем строку на подстроки по разделителю 'DA' и сохраняем результат в список.


5⃣ maxi = 0
Инициализируем переменную maxi для хранения максимальной длины найденной строки.


6⃣ for i in range(len(s)-5):
Запускаем цикл по индексам списка s от 0 до длины списка минус 5.


7⃣ r = 'A' + 'DA'.join(si:i+6) + 'D'
Формируем новую строку r, соединяя элементы списка s от текущего индекса i до i+5 с добавлением 'A' в начале и 'D' в конце.


8⃣ maxi = max(maxi, len(r))
Обновляем значение maxi, если длина текущей строки r больше предыдущего значения maxi.


0⃣ print(maxi)
Выводим максимальную длину строки, соответствующую условиям задачи.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥9541
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 12476 #kege по информатике #ЕГЭ24
Автор: PRO100 ЕГЭ
Уровень: Сложный


🚩 Условие задачи:
Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых комбинация символов RO встречается ровно 21 раз, а комбинации символов ORO и ROR ни разу не встречаются.


🚩 Теоретическая справка:
Если ORO и ROR найдутся в строке, то не нужно отсеивать все строку - необходимо разбить ее и исследовать подстроки по отдельности!


👩‍💻 Код решения:
s = open('0. files/24.txt').readline()
s = s.split('RO')
maxi = 0
for i in range(len(s)-21):
r = 'O' + 'RO'.join(s[i:i+22]) + 'R'
if 'ROR' in r or 'ORO' in r:
r = r.replace('ROR', 'RO OR')
r = r.replace('ORO', 'OR RO')
maxi = max(maxi, max([len(x) for x in r.split()]))
print(maxi)

Ответ: 814


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

s = open('24.txt').readline()

1⃣ Открываем файл '24.txt' и читаем первую строку.

s = s.split('RO')

2⃣ Разделяем строку на подстроки по разделителю 'RO' и сохраняем результат в список.

maxi = 0

3⃣ Инициализируем переменную maxi для хранения максимальной длины отдельных частей строки.

for i in range(len(s)-21):

4⃣ Запускаем цикл по индексам списка s от 0 до длины списка минус 21.

r = 'O' + 'RO'.join(si:i+22) + 'R'

5⃣ Формируем новую строку r, соединяя 22 элемента списка s с добавлением 'O' в начале и 'R' в конце.

if 'ROR' in r or 'ORO' in r:

6⃣ Проверяем, содержит ли строка r подстроки 'ROR' или 'ORO'.

r = r.replace('ROR', 'RO OR')

7⃣ Заменяем все вхождения 'ROR' на 'RO OR' в строке r.


r = r.replace('ORO', 'OR RO')

8⃣ Заменяем все вхождения 'ORO' на 'OR RO' в строке r.

maxi = max(maxi, max(len(x) for x in r.split()))

0⃣ Обновляем значение maxi, определяя максимальную длину части среди всех частей, на которые была разделена строка r.

print(maxi)

🔟 Выводим максимальную длину среди найденных частей строки.

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥86👍5
Товарищи, важный вопрос! Какой вариант оформления комментариев к коду вам нравится больше: как в прошлом посте (1⃣ от 23 февраля) или как в позапрошлом (2⃣ от 22 февраля)? 🤔
Anonymous Poll
52%
1⃣
48%
2⃣
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 14513 #kege по информатике #ЕГЭ24
Автор: Л. Шастин
Уровень: Базовый


🚩 Условие задачи:
Назовём маской образец строки, который строится на основании служебных знаков # и &, причём знак # обозначает непустую последовательность из идущих подряд букв, а знак & задает непустую последовательность из идущих подряд цифр.

Определите в прилагаемом файле максимальную длину подстроки, которая соответствует маске #&#.


🚩 Теоретическая справка:
Очень понравилась эта задача, идея решения заключается в приведении всех букв к одному символу и всех цифр к другому символу. Затем разбиваем полученную последовательность на пары, разделенные пробелами, и убираем лишние цифры справа, после чего находим самую длинную строку.


👩‍💻 Код решения:
from string import *
maxi = 0
s = open('0. files/24.txt').readline()
for x in digits:
s = s.replace(x, '&')
for x in ascii_uppercase:
s = s.replace(x, '#')
s = s.replace('&#', '& #')
s = s.split()
for i in range(len(s)-1):
r = ''.join(s[i:i+2])

while r[-1] == '&':
r = r[:-1]
maxi = max(maxi, len(r))
print(maxi)

Ответ: 49


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

from string import *

1⃣ Импортируем все символы и функции из модуля string, включая digits (цифры) и ascii_uppercase (заглавные буквы алфавита).

maxi = 0

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

s = open('24.txt').readline()

3⃣ Открываем файл '24.txt' и читаем первую строку.

for x in digits:

4⃣ Проходим по всем символам цифр от 0 до 9.

s = s.replace(x, '&')

5⃣ Заменяем каждую цифру в строке символом '&'.

for x in ascii_uppercase:

6⃣ Проходим по всем заглавным буквам английского алфавита.

s = s.replace(x, '#')

7⃣ Заменяем каждую заглавную букву в строке символом '#'.

s = s.replace('&#', '& #')

8⃣ Заменяем последовательность '&#' на '& #' с пробелом между ними.

s = s.split()

0⃣ Разбиваем строку s на список строк, используя пробелы в качестве разделителей.

for i in range(len(s)-1):

🔟 Перебираем индексы в списке s от 0 до длины списка минус 1.

r = ''.join(s[i:i+2])

1⃣1⃣ Формируем строку r путем объединения двух соседних элементов списка s.

while r[-1] == '&':

1⃣2⃣ Запускаем цикл, который продолжается, пока последний символ строки r равен '&'.

r = r[:-1]

1⃣3⃣ Убираем последний символ из строки r.

maxi = max(maxi, len(r))

1⃣4⃣ Обновляем значение maxi, если длина текущей строки r больше, чем текущее значение maxi.

print(maxi)

1⃣5⃣ Выводим максимальную длину найденной последовательности.

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач😼
Please open Telegram to view this post
VIEW IN TELEGRAM
210🔥33👍1
Ребзя, пройдите, пожалуйста, опрос!
Хочу узнать свою аудиторию получше. В особенности понять сколько здесь учеников 8-го и 9-го классов 😍
Anonymous Poll
2%
Учусь в 8 классе
1%
Учусь в 9 классе
9%
Учусь в 10 классе
61%
Учусь в 11 классе
8%
Уже студент
2%
Родитель
10%
Репетитор Информатики
2%
Репетитор другой предмет
5%
Просто неравнодушный
🚩 🚩 🚩 🚩 🚩 🚩 🚩 🚩 🚩 🚩🚩 🚩 🚩 🚩🚩
Новый канал по подготовке к ОГЭ по информатике 🚀

Недавний опрос был не просто так - мы готовили для вас кое-что интересное! Вместе с моим другом мы запустили новый канал, который поможет вам подготовиться к ОГЭ по информатике на отлично! 📚

На канале вас ждут:
💚Полезные материалы и разборы заданий
💚Советы и лайфхаки для успешной сдачи экзамена
💚Поддержка и ответы на вопросы

Скоро я расскажу подробнее о проекте и познакомлю вас с нашим новым автором - экспертом в области информатики, который знает, как сделать подготовку максимально эффективной 👨‍💻

Пожалуй уже оставлю ссылку на канал👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥44
К команде itpy присоединился Алексей, @lkeeeey 😀

Молодой специалист работает старшим мобильным разработчиком в проекте Extremum, а также делится своими знаниями и опытом, готовя ребят не только к сдаче экзамена ОГЭ по информатике, но и изучению различных языков прогрмирования (python, c++, Kotlin, html, css, js) 🤩

При поддержке нашей команды itpy он канал:
IT by lkey | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥125🔥43
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
Как вам формат больших разборов, хотели бы видеть больше таких полдробных разборов на канале?
Anonymous Poll
75%
✔️ Да
19%
⁉️ Уже сдал ЕГЭ
6%
Нет
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
👩‍💻 Мастерим срезы в Python: Изучаем эффективное использование срезов в списках и строках #tpy

🚩 Извлечение подсписка:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[2:5]
print(subset) # Вывод: [3, 4, 5]

Здесь мы извлекаем подсписок, начиная с индекса 2 и заканчивая индексом 5 (не включая). Это полезно, когда нам нужна определенная часть списка.

🚩 Извлечение каждого второго элемента:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[1::2]
print(subset) # Вывод: [2, 4, 6, 8, 10]

В этом примере мы извлекаем каждый второй элемент, начиная с индекса 1, то есть все нечетные ИНДЕКСЫ.

🚩 Извлечение обратного порядка списка:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reverse_list = my_list[::-1]
print(reverse_list) # Вывод: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Использование среза с отрицательным шагом позволяет нам легко создать список в обратном порядке.

🚩 Извлечение подстроки:
my_string = "Hello, World!"
substring = my_string[7:12]
print(substring) # Вывод: "World"

В данном случае, мы извлекаем подстроку, начиная с индекса 7 и заканчивая индексом 12 (не включая). Это полезно для работы с текстовыми данными.

🚩 Извлечение каждого второго символа:
my_string = "Hello, World!"
substring = my_string[::2]
print(substring) # Вывод: "Hlo ol!"

Использование среза с шагом 2 помогает нам извлекать каждый второй символ из строки.

🚩 Извлечение обратного порядка строки:
my_string = "Hello, World!"
reverse_string = my_string[::-1]
print(reverse_string) # Вывод: "!dlroW ,olleH"

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

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

Азим вкатывается в IT | itpy 💻
Наш второй канал по подготовке к ЕГЭ 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥733