This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
M = [int(x) for x in open('17.txt')]
Три основных типа задач 17 номера:
M = [1, 2, 3, 4, 5]
for i in range(len(M)-1):
x, y = M[i:i+2]
print(f'{x}{y}', end=' ')
# Вывод:
# 12 23 34 45
M = [1, 2, 3, 4, 5]
for i in range(len(M)-2):
x, y, z = M[i:i+3]
print(f'{x}{y}{z}', end=' ')
# Вывод:
# 123 234 345
M = [1, 2, 3, 4, 5]
for i in range(0, len(M)):
for j in range(i+1, len(M)):
x, y = M[i], M[j]
print(f'{x}{y}', end=' ')
print()
# Вывод:
# 12 13 14 15
# 23 24 25
# 34 35
# 45
Информатика ЕГЭ | itpy
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
(ДЕЛ(x, 2) → ¬ДЕЛ(x, 13)) ∨ (x + A ≥ 1000)
def F(x, A):
# return здесь пишем логическую функцию
return (x % 2 == 0) <= (x % 13 != 0) or ((x + A) >= 1000)
for A in range(1, 10000):
if all(F(x, A) for x in range(1, 10000)):
print(A)
break
(3x+y>48)∨(x>y)∨(4x+y<A)
def F(x, y, A):
# return здесь пишем логическую функцию
return ((3 * x) + y > 48) or (x > y) or ((4 * x) + y < A)
R = []
for A in range(0, 100):
if any(F(x, y, A) == 0 for x in range(0, 100) for y in range(0, 100)):
R.append(A)
print(max(R))
x&25 ≠ 0 → (x&17 = 0 → x&А ≠ 0)
def F(x):
# return здесь пишем логическую функцию
return (x & 25 != 0) <= ((x & 17 == 0) <= (x & A != 0))
for A in range(0, 1000):
if all(F(x) for x in range(0, 10000)):
print(A)
break
((x принадлежит A) → ¬(x принадлежит P)) → ((x принадлежит A) → (x принадлежит Q))
def F(x):
P = 10 <= x <= 35
Q = 17 <= x <= 48
A = a1 <= x <= a2
# return здесь пишем логическую функцию
return (A <= (not P)) <= (A <= Q)
M = [i / 4 for i in range(1 * 4, 60 * 4)] # нужно поменять range
R = []
for a1 in M:
for a2 in M:
if all(F(x) for x in M):
R.append(a2 - a1)
print(max(R))
Здесь я уже делал пост про логические функции.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
import turtle as t
t.left(90)
t.tracer(0)
l = 30
# тут пишем псевдокод
t.up()
for x in range(-50, 50):
for y in range(-50, 50):
t.goto(x * l, y * l)
t.dot('black')
t.done()
t.tracer(0)
Эта функция отключает анимацию черепахи, что делает отрисовку более быстрой, т.е. графика не будет отображаться до тех пор, пока t.update() не будет вызван явно. Значение 0 указывает на отключение анимации.
l = 30
Здесь создается переменная l и устанавливается значение 30.
forward(distance)
Двигает черепаху вперед на заданное расстояние.
backward(distance)
Двигает черепаху назад на заданное расстояние.
right(angle)
Поворачивает черепаху направо на заданный угол.
left(angle)
Поворачивает черепаху налево на заданный угол.
t.up()
Эта функция поднимает перо черепахи, что позволяет ей перемещаться без рисования.
for x in range(-50, 50):
:Этот цикл перебирает значения от -50 до 49 (50 не включается) для переменной x.
for y in range(-50, 50):
Этот цикл перебирает значения от -50 до 49 (50 не включается) для переменной y.
t.goto(x * l, y * l)
Эта функция перемещает черепаху в позицию с координатами (x * l, y * l), где l - это длина шага.
t.dot('black')
Эта функция рисует точку черным цветом в текущей позиции черепахи.
t.done()
Этот вызов указывает, что рисование завершено, и окно черепахи должно быть закрыто.
Таким образом, весь код используется для создания сетки черных точек в виде таблицы 100x100.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
def F(n):
if n <= 7:
return 1
else:
return n + 2 + F(n - 1)
print(F(2024) - F(2020))
from sys import *
setrecursionlimit(10000)
from functools import *
@lru_cache(None)
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
s = 170 * '1' + 100 * '3' + 7 * '2'
while '11' in s:
s = s.replace('112', '4', 1)
s = s.replace('113', '2', 1)
s = s.replace('42', '3', 1)
s = s.replace('43', '1', 1)
print(s)
s = 170 * '1' + 100 * '3' + 7 * '2'
Пример создания строка s, состоящая из 170 символов '1', за которыми следует 100 символов '3', а затем 7 символов '2'.
while '11' in s:
Начинается цикл, который будет выполняться до тех пор, пока в строке s есть подстрока '11'.
if '11' in s:
Если в строке s есть подстрока '11', то:
s = s.replace('112', '4', 1)
Заменяется первое вхождение подстроки '112' на символ '4' в строке s.
summa = sum([int(i) for i in s])
Создается переменная summa, с суммой цифр строки.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
for s in open('9.txt'):
M = [int(x) for x in s.split()]
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Ссылка на полную версию шпаргалки/методички на Notion.
Поставь
s = open('24.txt').readline()
s = s.replace('1', '2').replace('W', 'R')
print(max([len(x) for x in s.split()]))
for i in range(len(s)-3):
if s[i:i+4] in ('KLMN', 'LMNK', 'MNKL', 'NKLM'):
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
Пару слов об авторе канала, давайте знакомиться!
#kege #yandex
#reshu #statgrad
#polyakov
Информатика ЕГЭ | itpy
Программирование на Python | itpy
Информатика ОГЭ | itpy
Hey Student!
Please open Telegram to view this post
VIEW IN TELEGRAM
4 5 5 4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
(ДЕЛ(x, 2) → ¬ДЕЛ(x, 13)) ∨ (x + A ≥ 1000)
def F(x, A):
return # Здесь пишем логическую функцию
R = []
for A in range(1, 10000):
if all(F(x, A) for x in range(1, 10000)):
R.append(A)
print(max(R))
(3x+y>48)∨(x>y)∨(4x+y<A)
def F(x, y, A):
return # Здесь пишем логическую функцию
R = []
for A in range(0, 100):
if any(F(x, y, A) == 0 for x in range(0, 100) for y in range(0, 100)):
R.append(A)
print(max(R))
x&25 ≠ 0 → (x&17 = 0 → x&А ≠ 0)
def F(x, A):
return # Здесь пишем логическую функцию
R = []
for A in range(0, 1000):
if all(F(x, A) for x in range(0, 10000)):
R.append(A)
print(max(R))
((x принадлежит A) → ¬(x принадлежит P)) → ((x принадлежит A) → (x принадлежит Q))
def F(x):
P = 10 <= x <= 35
Q = 17 <= x <= 48
A = a1 <= x <= a2
return # Здесь пишем логическую функцию
# Тут нужно будет поменять range()
M = [i / 4 for i in range(1 * 4, 60 * 4)]
R = []
for a1 in M:
for a2 in M:
if all(F(x) for x in M):
R.append(a2 - a1)
print(max(R))
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
4 13 4 3
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовил для вас шпоргалочку для решению 14 номера!
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
from string import *
alphabet = digits + ascii_uppercase
for y in alphabet[:n]:
x = int(f'79{x}{y}7', n)
bin()[2:] # перевод в 2-ую
oct()[2:] # перевод в 8-ую
hex()[2:] # перевод в 16-ую
x = 27
print(f'{x:b}') # 11011
print(f'{x:o}') # 33
print(f'{x:x}') # 1b
print(f'{x:X}') # 1B
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
2 8 3 3
Ссылка на подборку с разборами 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
❤🔥9❤2🔥2
Собрал для вас основные моменты, которые важно знать при решении 16 номера. Для закрепления материала оставляю ссылку на подборку всех 16 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
def F(n):
if n <= 7:
return 1
else:
return n + 2 + F(n - 1)
print(F(2024) - F(2020))
Без лишних действий просто переписываем псевдокод в свою фукнцию не придумывая велосипедов
from sys import *
setrecursionlimit(10000)
Эта настройка полезна при возникновении ошибки RecursionError: maximum recursion depth exceeded.
from functools import *
@lru_cache(None)
Используйте декоратор @lru_cache(None), если ваша программа зависает или слишком долго выполняется, так как это помогает кэшировать результаты вычислений.
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥4 4 2
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7🔥5👍4
Собрал для вас основные моменты, которые важно знать при решении 16 номера. Для закрепления материала оставляю ссылку на подборку всех 16 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
Автор: Открытый вариант 2025
Уровень: Базовый
def F(n):
if n >= 2025:
return n
if n < 2025:
return n * 2 + F(n + 2)
print(F(82) - F(81)) # 1945
Автор: Досрочная волна 2025
Уровень: Базовый
import sys
sys.setrecursionlimit(100000)
def F(n):
if n <= 5:
return 1
if n > 5:
return n + F(n - 2)
print(F(2126) - F(2122))
В этом прототипе нужно расширить глубину рекурсии из-за ошибки: "RecursionError: maximum recursion depth exceeded".
Автор: Апробация 05.03.25
Уровень: Базовый
import sys
sys.setrecursionlimit(100000)
def F(n):
if n == 1:
return 1
if n > 1:
return n * F(n - 1)
print((F(2024) // 4 + F(2023)) // F(2022))
print((F(2024) / 4 + F(2023)) // F(2022))
~~~^~~
OverflowError: integer division result too large for a float
Такую ошибку мы получили на экзамене 2024 года.
Автор: М. Попков
Уровень: Базовый
from functools import *
import sys
sys.setrecursionlimit(100000)
@lru_cache(None)
def F(n):
if n <= 3:
return n - 1
if n > 3 and n % 2 == 0:
return F(n - 2) + n / 2 - F(n - 4)
if n > 3 and n % 2 != 0:
return F(n - 1) * n + F(n - 2)
for n in range(1, 5000):
F(n)
print(F(4952) + 2 * F(4958) + F(4964))
Самая неприятная ошибка, здесь необходимо использовать библиотеку functools.
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥18 10❤🔥8❤2
Собрал для вас основные моменты, которые важно знать при решении 5 номера. Для закрепления материала оставляю ссылку на подборку всех 5 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
Автор: Досрочная волна 2025
Уровень: Базовый
for n in range(1, 1000):
s = f'{n:b}'
if s.count('1') % 2 == 0:
s = '10' + s[2:] + '0'
else:
s = '11' + s[2:] + '1'
r = int(s, 2)
if r > 480:
print(n)
break
Автор: ЕГКР 19.04.25
Уровень: Базовый
def tri(n):
s = ''
while n > 0:
s += str(n % 3)
n //= 3
s = s[::-1]
return s
for n in range(1000, 1, -1):
s = tri(n)
if n % 3 == 0:
s += s[-2:]
else:
s += tri(n % 3 * 3)
r = int(s, 3)
if r <= 150:
print(n)
break
В этом типе нужно использовать функцию для перевода в троичную систему счисления.
n = 24
num_2 = bin(n)[2:] # 11000
num_8 = oct(n)[2:] # 30
num_16 = hex(n)[2:] # 18
n = 24
num_2 = f'{n:b}' # 11000
num_8 = f'{n:o}' # 30
num_16 = f'{n:x}' # 18
from string import *
alphabet = digits + ascii_uppercase
# alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
def my_convert(num, base):
result = ''
while num > 0:
result += alphabet[num % base]
num //= base
return result[::-1]
n = 24
num_2 = my_convert(n, 2) # 11000
num_8 = my_convert(n, 8) # 30
num_16 = my_convert(n, 16) # 18
num_3 = my_convert(n, 3) # 220
print(int('1000', 2)) # 8
print(int('10', 8)) # 8
print(int('8', 16)) # 8
Диапазон работы функции (2 <= base <= 36)
s = '101001'
# Добавить '10' справа (в конец)
s = s + '10' # 10100110
# Добавить '01' слева (в начало)
s = '01' + s # 0110100110
print(s)
# Добавить '+' по середине
s = s[:len(s)//2] + '+' + s[len(s)//2:]
# 01101*00110
# Заменить все нули на единицы, а единицы на нули
s = s.replace('1', '*')
s = s.replace('0', '1')
s = s.replace('*', '0')
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Давайте наберем 30 реакций, после этого заливаю следующую (свежую) шпору
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤16 8👍7 4
Собрал для вас основные моменты, которые важно знать при решении 8 номера. Для закрепления материала оставляю ссылку на подборку всех 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)
В данном задании необходимо найти какое количество различных кодовых слов можно составить.
Автор: Открытый вариант 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)
В данном прототипе нужно найти количество чисел, которые можно составить.
Автор: ЕГКР 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
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤🔥26 11🔥8❤2 2
Для закрепления материала оставляю ссылку на подборку всех 12 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
Автор: Апробация 05.03.25
Уровень: Базовый
s = '1' + 90 * '0'
while '1' in s:
if '10' in s:
s = s.replace('10', '0001', 1)
else:
s = s.replace('1', '000', 1)
print(s.count('0'))
В данном задании необходимо найти количество нулей в полученной строке.
Уровень: Базовый
M = []
for n in range(4, 10000):
s = '4' + n * '7'
while '444' in s or '777' in s:
if '777' in s:
s = s.replace('777', '4', 1)
else:
s = s.replace('444', '7', 1)
summ = s.count('4') * 4 + s.count('7') * 7
M.append(summ)
print(max(M))
В этом прототипе нужно найти максимальную сумму цифр в строке.
s = '12345'
summ = s.count('4') * 4 + s.count('7') * 7
summ = sum(map(int, s))
summ = sum([int(x) for x in s])
summ = sum([int(x) for x in s if x.isdigit()])
summ = 0
for x in s:
summ += int(x)
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤🔥10👍4 4🔥2 1
Задача 21425 #kege по информатике #шпора
Автор: Досрочная волна 2025
Уровень: Базовый
PS: Для начала просто внимательно прочитайте условие задачи и сравните его с оригиналом! Также публикую код решения, но пока без комментариев - они будут добавлены постами ниже.
В файле A хранятся данные о звёздах двух кластеров. В файле B хранятся данные о звёздах трёх кластеров.
Для каждого файла определите координаты центра каждого кластера. Затем вычислите четыре числа:
1. PxA – среднее арифметическое абсцисс центров кластеров файла А.
2. PyA – среднее арифметическое ординат центров кластеров файла А.
3. PxB – среднее арифметическое абсцисс центров кластеров файла B.
4. PyB – среднее арифметическое ординат центров кластеров файла B.
В ответе запишите четыре числа: в первой строке сначала целую часть произведения PxA * 10000, затем целую часть произведения Py*10000 для файла А, во второй строке – аналогичные данные для файла B.
При этом будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна.
А расстояние между двумя точками на плоскости между точками A(x1, y1) и B(x2, y2) вычисляется по формуле: d(A,B)= ((x2 - x1)**2 + (y2 - y1)**2)**0.5
from math import dist
clustersA = [[], []]
clustersB = [[], [], []]
for s in open('27_A.txt'):
s = s.replace(',', '.')
x, y = [float(i) for i in s.split()]
if y > 0:
clustersA[0].append([x, y])
else:
clustersA[1].append([x, y])
for s in open('27_B.txt'):
s = s.replace(',', '.')
x, y = [float(i) for i in s.split()]
if x > 0 and y > 0:
clustersB[0].append([x, y])
elif x > 0 and y < 0:
clustersB[1].append([x, y])
else:
clustersB[2].append([x, y])
def center(cl):
R = []
for p in cl:
summa=sum(dist(p, g) for g in cl)
R.append([summa,p])
return min(R)[1]
centersA = [center(cl) for cl in clustersA]
pxA = sum(x for x, y in centersA) / 2 * 10000
pyA = sum(y for x, y in centersA) / 2 * 10000
print(int(pxA), int(pyA))
centersB = [center(cl) for cl in clustersB]
pxB = sum(x for x, y in centersB) / 3 * 10000
pyB = sum(y for x, y in centersB) / 3 * 10000
print(int(pxB), int(pyB))
Ответ:
167990 73043
122627 29105
Файлы для решения задачи:
27_A.xlsx 27_A.txt
27_B.xlsx 27_B.txt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10🔥5❤4🤯2