Информатика | Илья Андрианов | itpy 🧑💻
ОткрытыйВариантЕгэИнформатика2024.pdf
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Базовый
Сколько существует восьмеричных пятизначных чисел, не содержащих в своей записи цифру 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
from itertools import *
Импорт всех функций из модуля itertools, позволяющих работать с итераторами и комбинаторикой.
cnt = 0
Инициализация переменной cnt для подсчета количества чисел, удовлетворяющих условиям задачи.
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'.
nechet = '35 53 37 73 57 75'.split()
Создание списка nechet аналогичным способом для пар нечетных цифр '35', '53', '37', '73', '57', '75'.
for x in permutations('0234567', 5):
Цикл for, в котором перебираются все перестановки длиной 5 из цифр '0234567'.
x = ''.join(x)
Объединение перестановки x в строку для дальнейшей проверки.
if x[0] != '0':
Проверка, что первая цифра числа не равна 0.
if all(y not in x for y in chet) and all(y not in x for y in nechet):
Проверка, что число не содержит ни одной из четных пар из списка chet и ни одной из нечетных пар из списка nechet.
cnt += 1
Увеличение счетчика cnt на 1, если число удовлетворяет всем условиям.
print(cnt)
Вывод количества чисел, удовлетворяющих заданным условиям.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Появился новый легкий способ восстановит Тик Ток в России (для айфон), поэтому делюсь страничкой Lizzerd с которым мы совместно делаем эти видео для вас.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: (Л. Шастин)
Уровень: Средний
Определите количество семизначных чисел, записанных в восьмеричной системе счисления, запись которых содержит ровно две чётные цифры, и при этом никакая нечётная цифра не стоит рядом с цифрой 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
from itertools import product
Импорт функции product из модуля itertools, которая создает все возможные комбинации длиной n из указанных элементов.
cnt = 0
Инициализация переменной cnt для подсчета количества чисел, удовлетворяющих условиям задачи.
for per in product('01234567', repeat=7):
Цикл for, в котором перебираются все комбинации длиной 7 из цифр от 0 до 7.
num = ''.join(per)
Создание строки num путем объединения элементов из текущей комбинации per.
if num[0] != '0':
Проверка, что первая цифра числа не равна 0.
if len([x for x in num if x in '02468']) == 2:
Проверка, что число содержит ровно 2 из цифр '02468'.
if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
Проверка, что число не содержит никаких из заданных комбинаций цифр '71', '17', '37', '73', '57', '75', '77'.
cnt += 1
Увеличение счетчика cnt на 1, если число удовлетворяет всем условиям.
print(cnt)
Вывод количества чисел, удовлетворяющих заданным условиям.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Хотите узнать, какой элемент встречается чаще всего в списке? Существует лайфхак, который поможет вам сделать это быстро и эффективно, не прибегая к сложным циклам.
С помощью функции
max()
и методов set()
и count()
мы можем легко найти наиболее часто встречающийся элемент.Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовили для вас методическое пособие по решению 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
Мы с командой разрабатываем мини-курс по подготовке к ЕГЭ на платформе Stepik. Сейчас мы тестируем одну из гипотез и нам важно услышать твое мнение. Твой отзыв поможет нам улучшить материалы и создать полезный курс. Будем признательны, если ты перейдешь по первой ссылке и решишь несколько задач, а затем ответишь на несколько вопросов используя вторую ссылку на Google Forms.
Будем благодарны и признательны всем неравнодушным.
Спасибо за помощь и интерес к нашему проекту!
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Средний
Числа 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
def my_int(num, base):
Определение функции my_int, которая принимает список чисел num и основание base.
return sum(x*base**i for i, x in enumerate(num[::-1]))
Функция возвращает сумму произведений элементов списка num на соответствующие степени base.
for p in range(16, 100):
Запуск цикла for, который перебирает числа от 16 до 99 и использует их в качестве p.
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 равен нулю.
print(p)
Вывод числа p, которое удовлетворяет условиям, после чего программа завершает работу, используя оператор break.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
Логическая функция 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
from itertools import *
Импорт функций из модуля itertools, который предоставляет различные инструменты для работы с итерациями.
def F(x, y, z, w):
Определение функции 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):
Цикл, в котором перебираются все возможные комбинации пар из 0 и 1.
table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
Создание списка table с кортежами чисел 0 и 1, используемыми в качестве аргументов функции.
if len(set(table)) == len(table):
Проверка условия, что все элементы в table уникальны.
for i in permutations('xyzw'):
Цикл, который перебирает все перестановки символов 'xyzw'.
if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
Проверка условия, что результаты функции F для каждого элемента из table равны [1, 1, 1].
print(*i, sep='')
Вывод комбинации символов i без разделителя на экран.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Важное свойство Python - возможность преобразования чисел в логические значения. В этом языке программирования все числа, кроме нуля, включая отрицательные, считаются истинными (True). Ноль же интерпретируется как ложь (False). Таким образом, Python позволяет проводить логические операции
and, or, not
над числами без проблем.Логические операции с числами в Python выполняются в соответствии с таблицами истинности операторов, что облегчает понимание и работу с логическими выражениями в контексте чисел.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM