Информатика | Илья Андрианов | 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
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 10090 #kege по информатике #ЕГЭ8
Уровень: Базовый


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


🚩 Теоретическая справка:
Про функцию all() я писал тут.


👩‍💻 Код решения:
from itertools import *
cnt = 0
chet = '02 20 04 40 06 60 24 42 26 62 46 64'.split()
nechet = '35 53 37 73 57 75'.split()
for x in permutations('0234567', 5):
x = ''.join(x)
if x[0] != '0':
if all(y not in x for y in chet) and all(y not in x for y in nechet):
cnt += 1
print(cnt)

# Ответ: 180


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

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


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


3⃣ chet = '02 20 04 40 06 60 24 42 26 62 46 64'.split()
Создание списка chet путем разделения строки на элементы, содержащие пары четных цифр '02', '20', '04', '40', '06', '60', '24', '42', '26', '62', '46', '64'.


4⃣ nechet = '35 53 37 73 57 75'.split()
Создание списка nechet аналогичным способом для пар нечетных цифр '35', '53', '37', '73', '57', '75'.


5⃣ for x in permutations('0234567', 5):
Цикл for, в котором перебираются все перестановки длиной 5 из цифр '0234567'.


6⃣ x = ''.join(x)
Объединение перестановки x в строку для дальнейшей проверки.


7⃣ if x[0] != '0':
Проверка, что первая цифра числа не равна 0.


8⃣ if all(y not in x for y in chet) and all(y not in x for y in nechet):
Проверка, что число не содержит ни одной из четных пар из списка chet и ни одной из нечетных пар из списка nechet.


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


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


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
965
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Создавайте папки с чатами и делитесь ими в Телеграм #useful #view

Появился новый легкий способ восстановит Тик Ток в России (для айфон), поэтому делюсь страничкой Lizzerd с которым мы совместно делаем эти видео для вас.

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
6321
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 11827 #kege по информатике #ЕГЭ8
Автор: (Л. Шастин)
Уровень: Средний


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


🚩 Теоретическая справка:
Список четных чисел можно найти вот так: chet = [x for x in num if x in '02468']


👩‍💻 Код решения:
from itertools import product
cnt = 0
for per in product('01234567', repeat=7):
num = ''.join(per)
if num[0] != '0':
if len([x for x in num if x in '02468']) == 2:
if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
cnt += 1
print(cnt)

# Ответ: 95904


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

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


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


3⃣ for per in product('01234567', repeat=7):
Цикл for, в котором перебираются все комбинации длиной 7 из цифр от 0 до 7.


4⃣ num = ''.join(per)
Создание строки num путем объединения элементов из текущей комбинации per.


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


6⃣ if len([x for x in num if x in '02468']) == 2:
Проверка, что число содержит ровно 2 из цифр '02468'.


7⃣ if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
Проверка, что число не содержит никаких из заданных комбинаций цифр '71', '17', '37', '73', '57', '75', '77'.


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


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


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
9651
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Нахождение наиболее частого элемента в списке #tpy

Хотите узнать, какой элемент встречается чаще всего в списке? Существует лайфхак, который поможет вам сделать это быстро и эффективно, не прибегая к сложным циклам.

С помощью функции max() и методов set() и count() мы можем легко найти наиболее часто встречающийся элемент.

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
6433
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 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
965
👋 Привет! Нам нужна ваша помощь!

Мы с командой разрабатываем мини-курс по подготовке к ЕГЭ на платформе Stepik. Сейчас мы тестируем одну из гипотез и нам важно услышать твое мнение. Твой отзыв поможет нам улучшить материалы и создать полезный курс. Будем признательны, если ты перейдешь по первой ссылке и решишь несколько задач, а затем ответишь на несколько вопросов используя вторую ссылку на Google Forms.

Будем благодарны и признательны всем неравнодушным.
Спасибо за помощь и интерес к нашему проекту! 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
15553
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера #statgrad по информатике #ЕГЭ14
Автор: Статград
Уровень:
Средний

🚩 Условие задачи:
Числа AB267D1_p и F024A89_p записаны в системе счисления с основанием p.
При каком минимальном p сумма этих чисел будет делиться на p–1?


🚩 Теоретическая справка:
Так как функция int(num, base) работает только в диапазоне от 2 до 36, то нам приходится написать свою универсальную функцию my_int(), изучите её и используйте в сложных задачах.


👩‍💻 Код решения:
def my_int(num, base):
return sum(x*base**i for i, x in enumerate(num[::-1]))


for p in range(16, 100):
A = my_int([10, 11, 2, 6, 7, 13, 1], p)
B = my_int([15, 0, 2, 4, 10, 8, 9], p)
if (A + B) % (p-1) == 0:
print(p)
break

# Ответ: 50


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

1⃣ def my_int(num, base):
Определение функции my_int, которая принимает список чисел num и основание base.


2⃣ return sum(x*base**i for i, x in enumerate(num[::-1]))
Функция возвращает сумму произведений элементов списка num на соответствующие степени base.


3⃣ for p in range(16, 100):
Запуск цикла for, который перебирает числа от 16 до 99 и использует их в качестве p.


4⃣ if (my_int([10, 11, 2, 6, 7, 13, 1], p) + my_int([15, 0, 2, 4, 10, 8, 9], p)) % (p-1) == 0:
Проверка условия: сумма результатов функции my_int для двух списков их модуль по отношению к p-1 равен нулю.


5⃣ print(p)
Вывод числа p, которое удовлетворяет условиям, после чего программа завершает работу, используя оператор break.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
766
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера #statgrad по информатике #ЕГЭ2
Автор: Статград
Уровень:
Базовый

🚩 Условие задачи:
Логическая функция F задаётся выражением:
((x ∨ y) → (y ∧ w)) ≡ ¬ ((y ∧ z) → (w ∨ x))
Дан частично заполненный фрагмент, содержащий неповторяющиеся
строки таблицы истинности функции F.

1 1 _ 1 | 1
0 _ 0 0 | 1
0 0 1 1 | 1


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

def F(x, y, z, w):
return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))


for a1, a2 in product([0, 1], repeat=2):
table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
if len(set(table)) == len(table):
for i in permutations('xyzw'):
if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
print(*i, sep='')

# Ответ: zywx


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

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


2⃣ def F(x, y, z, w):
Определение функции F с параметрами x, y, z, w.


3⃣ return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))
Возвращение результата выражения, которое сравнивает логические операции с параметрами функции.


4⃣ for a1, a2 in product([0, 1], repeat=2):
Цикл, в котором перебираются все возможные комбинации пар из 0 и 1.


5⃣ table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
Создание списка table с кортежами чисел 0 и 1, используемыми в качестве аргументов функции.


6⃣ if len(set(table)) == len(table):
Проверка условия, что все элементы в table уникальны.


7⃣ for i in permutations('xyzw'):
Цикл, который перебирает все перестановки символов 'xyzw'.


8⃣ if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
Проверка условия, что результаты функции F для каждого элемента из table равны [1, 1, 1].


0⃣ print(*i, sep='')
Вывод комбинации символов i без разделителя на экран.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
6443
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Логические значения чисел #tpy

Важное свойство Python - возможность преобразования чисел в логические значения. В этом языке программирования все числа, кроме нуля, включая отрицательные, считаются истинными (True). Ноль же интерпретируется как ложь (False). Таким образом, Python позволяет проводить логические операции and, or, not над числами без проблем.

Логические операции с числами в Python выполняются в соответствии с таблицами истинности операторов, что облегчает понимание и работу с логическими выражениями в контексте чисел.

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
754