Информатика | Илья Андрианов | itpy 🧑‍💻
1.05K 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
💡Учимся работать с единицами измерения информации #tpy

В информатике существуют различные единицы измерения информации, которые позволяют оценить объем и количество данных. Одной из основных единиц измерения информации является бит (bit), который является базовой единицей и может принимать два значения: 0 или 1.

Для удобства работы с большими объемами данных были разработаны более крупные единицы измерения. Например, байт (byte) состоит из 8 бит и является минимальным адресуемым элементом в памяти компьютера.

Для измерения единиц информации, связанных с текстом и файлами, используются следующие единицы измерения:

🚩 Килобайт (KB) = 1024 байта. Эта единица часто используется для измерения размера текстовых файлов, документов и небольших изображений.

🚩 Мегабайт (MB) = 1024 килобайта. Эта единица применяется для оценки размера фотографий, музыкальных файлов и некоторых видеозаписей.

🚩 Гигабайт (GB) = 1024 мегабайта. Она используется для измерения объемов больших файлов, хранения мультимедийных коллекций или программного обеспечения.

🚩 Терабайт (TB) = 1024 гигабайта. Эта единица используется для оценки емкости жестких дисков, серверов и облачного хранилища данных.

🚩 Петабайт (PB) = 1024 терабайта. Эта единица применяется для измерения очень больших объемов данных, таких как архивы, библиотеки видео или массовые массивы данных.

Информатика ЕГЭ | itpy
👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1397👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 10718 #kege по информатике #ЕГЭ16

Полный разбор задачи в Notion

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

@lru_cache(None)
def f(n):
if n < 3:
return 2
if n > 2 and n % 2 == 0:
return 2 * f(n-2) - f(n-1) + 2
if n > 2 and n % 2 != 0:
return 2 * f(n-1) + f(n-2) - 2

print(f(170))


В следующем посте добавлю пару слов про функцию @lru_cache() с аргументом None 👇

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
14953
💡 Кэширование через функцию @lru_cache() #tpy

from functools import *

@lru_cache(None)
def f(n):
if n < 3:
return 2
if n > 2 and n % 2 == 0:
return 2 * f(n-2) - f(n-1) + 2
if n > 2 and n % 2 != 0:
return 2 * f(n-1) + f(n-2) - 2

print(f(170))


В данном коде @lru_cache(None) используется для кэширования результатов функции f(n) с помощью декоратора lru_cache из встроенного в базовый Python модуля functools. Аргумент None указывает, что размер кэша неограничен.

🚩 Кэширование функции позволяет избежать повторных вычислений для одних и тех же входных данных. При первом вызове функции f(n) результат сохраняется в кэше. При последующих вызовах функции с тем же аргументом, результат будет возвращен из кэша, вместо повторного выполнения вычислений.

Таким образом, в данном коде использование @lru_cache(None) позволяет сэкономить время на вычислениях, так как функция f(n) будет выполняться только один раз для каждого уникального аргумента.

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1276👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 7011 #kege по информатике #23

Полный разбор задачи в Notion

Интересный 23 номер с дополнительным условием отсутствия в траектории набора команд 'BACA'.

👩‍💻 Код решения:
def F(a, b, s: str):
if a >= b or a == 28:
return a == b and 'BACA' not in s
return F(a+2, b, s+'A') + F(a+3, b, s+'B') + F(a*2, b, s+'C')


print(F(2, 40, ''))


Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5543
👩‍💻 Функция permutations() из библиотеки itertools в Python #tpy

Используется для создания всех возможных перестановок элементов. Рассмотрим несколько примеров:

🚩 Простейший пример использования функции:
from itertools import permutations

nums = [1, 2, 3]
perm = permutations(nums)

for i in list(perm):
print(i)

На выходе мы получим:
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)


🚩 Сгенерируем все возможные перестановки из слов:

from itertools import permutations

words = ['hi', 'world', '!']
perm = permutations(words)

for i in list(perm):
print(i)
На выходе мы получим:
('hi', 'world', '!')
('hi', '!', 'world')
('world', 'hi', '!')
('world', '!', 'hi')
('!', 'hi', 'world')
('!', 'world', 'hi')


🚩 Можем задать дополнительный параметр permutations(), который указывает, сколько элементов нужно взять для формирования каждого кортежа в результате:
from itertools import permutations

nums = [1, 2, 3, 4]
perm = permutations(nums, 2)

for i in list(perm):
print(i)

На выходе мы получим:
(1, 2)
(1, 3)
(1, 4)
(2, 1)
(2, 3)
(2, 4)
(3, 1)
(3, 2)
(3, 4)
(4, 1)
(4, 2)
(4, 3)


Таким образом, permutations() представляет собой удобный инструмент для генерации всех возможных перестановок элементов.

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11653
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 8417 #kege по информатике #ЕГЭ8

Полный разбор задачи в Notion

Закрепим изученную теорию, разберем пример 8 номера:

👩‍💻 Код решения:
import itertools
count = 0
for s in itertools.permutations('ЯРОСЛАВ', 5):
slovo = ''.join(s)
glas = [i for i in slovo if i in 'ЯОА']
sogl = [i for i in slovo if i in 'РСЛВ']
if len(sogl) > len(glas):
if all(x not in slovo for x in 'ЯА АЯ АО ОА ЯО ОЯ'.split()):
count += 1
print(count)


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
106👍33
👩‍💻 Функция product из библиотеки itertools в Python #tpy

Используется для создания декартова произведения последовательностей. Давайте рассмотрим несколько примеров использования этой функции:

🚩 Простейший пример использования функции product:
from itertools import product

seq1 = [1, 2]
seq2 = ['a', 'b']
result = list(product(seq1, seq2))
print(result)

Результат выполнения данного кода будет:
[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]



🚩 Создание декартова произведения последовательности с самой собой:
from itertools import product

seq = ['a', 'b', 'c']
result = list(product(seq, repeat=2))
print(result)

Результат выполнения данного кода:
[('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'b'), ('b', 'c'), ('c', 'a'), ('c', 'b'), ('c', 'c')]



🚩 Пример с использованием декартова произведения для работы с буквами в слове:
from itertools import product

word = 'bat'
result = product(word, repeat=2)
for item in result:
print(item)

Результат выполнения данного кода будет:
('b', 'b')
('b', 'a')
('b', 't')
('a', 'b')
('a', 'a')
('a', 't')
('t', 'b')
('t', 'a')
('t', 't')


Функция product из библиотеки itertools является мощным инструментом для создания всех возможных комбинаций элементов последовательностей.

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
87👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 8654 #kege по информатике #ЕГЭ24

Полный разбор задачи в Notion

Закрепим изученную теорию, разберем пример 24 номера:

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

s = open('24.txt').readline()
for v in product('ABCDEFGHIJKLMNOPQRSTUVWXYZ', repeat=5):
slovo = ''.join(v)
if fnmatch(slovo, '?B??D'):
s = s.replace(slovo, '**** ****')
print(max(len(x) for x in s.split()))


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
9443
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 10581 #kege по информатике #ЕГЭ13

Полный разбор задачи в Notion

Интересная задачка 13 номера c kompege.ru от Л. Шастина.

👩‍💻 Код решения:
from ipaddress import *
for mask in range(32+1):
net = ip_network(f'175.122.80.13/{mask}', 0)
print(net)


Для решения необходимо знать:
Количество единиц в маске подсети указывает, сколько битов адреса IP отведено для сети, а оставшиеся биты - для узлов.

Для вычисления количества возможных значений маски подсети можно использовать следующую формулу: 2**n - 2


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7642🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
💐 Дорогие дамы! Поздравляем вас с праздником 8 Марта! Пусть ваш код будет всегда совершенен, а проекты успешны. Пусть каждый день наполняется новыми идеями и достижениями.

Благодарим вас за ваш профессионализм и творческий подход. Желаем вам ярких впечатлений, вдохновения и море улыбок! С праздником 💐

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
199
👩‍💻 Библиотека ipaddress в Python предоставляет удобные инструменты для работы с IP-адресами, подсетями и масками.

С её помощью можно выполнять различные операции, такие как проверка принадлежности адреса к сети, определение адреса сети по IP-адресу и маске, а также многое другое. Вот несколько основных функций и примеры использования:

🚩 Для подсчета количества нулей в адресе сети:
from ipaddress import *
net = ip_network('123.80.87.27/255.255.240.0', 0)
address = f'{net.network_address:b}'
print(address.count('0'))


🚩 Для определения номера компьютера в сети с заданной маской подсети и IP-адресом компьютера:
from ipaddress import *
net = ip_network('226.185.90.162/255.255.252.0', 0)
print(net) # 226.185.88.0/22
ip1 = ip_address('226.185.90.162')
ip2 = ip_address('226.185.88.0')
print(int(ip1) - int(ip2))


🚩 Для определения адреса сети по заданному IP-адресу и маске:
from ipaddress import *
net = ip_network('224.230.250.29/255.255.240.0', 0)
print(net.network_address)


🚩 Для определения третьего байта маски по заданному IP-адресу и известному адресу сети:
from ipaddress import *
for mask in range(32+1):
net = ip_network(f'111.81.176.27/{mask}', 0)
print(net, net.netmask) # дальше найти нашу сеть 111.81.160.0


Библиотека ipaddress обладает богатым набором функций, делающих работу с IP-адресами и сетями более удобной и эффективной.

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
875👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩Форматирование текста в Телеграме #useful

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

🚩 Жирный шрифт - сочетание клавиш cmd (ctrl) + B
Пример текста

🚩 Курсив - сочетание клавиш cmd (ctrl) + I
Пример текста

🚩 Подчеркнутый текст - сочетание клавиш cmd (ctrl) + U
Пример текста

🚩 Зачеркнутый текст - сочетание клавиш cmd (ctrl) + Shift + X
Пример текста

🚩 Моноширный шрифт - полезный формат для передачи промокодов, паролей пользователям, так же подходит для кода) - сочетание клавиш cmd (ctrl) + Shift + M
Пример текста

🚩 Цитирование - сочетание клавиш cmd (ctrl) + Shift + "."
Пример текста


🚩 Спойлер - сочетание клавиш cmd (ctrl) + Shift + P
Пример текста

🚩 Код - достаточно выделить текст тремя обратными апострофами (`) до и после текста
Пример текста


🚩 Ссылка в тексте - сочетание клавиш cmd (ctrl) + K
Пример текста

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
98431
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Работа с файлами Python #tpy

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

А в следующем посту рассмотрим несколько примеров открытия файлов с ЕГЭ.

🚩 Открытие файла:
file = open("example.txt", "r")  # Открываем файл example.txt на чтение


🚩 Чтение содержимого файла:
content = file.read()
print(content)


🚩 Построчное чтение файла:
file = open("example.txt", "r")  # Открытие файла для чтения

for line in file:
print(line.strip())

file.close()


🚩 Более подробную информацию про работу с файлами вы можете изучить в нашей статье на Notion

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
763
👩‍💻 Примеры работы с .txt файлами на некоторых номерах ЕГЭ #tpy

🚩 Чтение .txt файла для 9 номера с целыми числами:
for s in open('9.txt'):
M = [int(x) for x in s.split()]


🚩 Чтение .txt файла для 9 номера с вещественными числами:
for s in open('9.txt'):
M = [float(x) for x in s.replace(',', '.').split()]


🚩 Чтение чисел из .txt файла для 17 номера:
M = [int(x) for x in open('17.txt')]


🚩 Чтение первой (и единственной) строки файла для 24 номера:
s = open('24.txt').readline()


🚩 Чтение всех строк файла для 24 номера:
s = open('24.txt').readlines()
for x in s:
print(x)


Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8422
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 59794 #reshu по информатике #ЕГЭ24

Полный разбор задачи в Notion

👩‍💻 Код решения:
s = open('24.txt').readline()
s = s.split('U')
mini = 999999
for i in range(len(s)-108):
r = 'U'.join(s[i:i+109])
mini = min(mini, len(r))
print(mini + 2)


Файлы к заданию: 24.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
10105🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 60266 #reshu по информатике #ЕГЭ24

Полный разбор задачи в Notion

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


Файлы к заданию: 24.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
776👏2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 2491 #kege по информатике #ЕГЭ17

Полный разбор задачи в Notion

Давайте повторим решение 17 номера на этом интересном примере с сайта kompege.ru.

👩‍💻 Код решения:
M = [int(x) for x in open('17.txt')]
avg = sum(M) / len(M)
R = []
for i in range(len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if x < avg or y < avg or z < avg:
if all('9' in str(a) for a in [x, y, z]):
R.append(x + y + z)
print(len(R), max(R))


Файлы к заданию: 17.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
765👏2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 7891 #kege по информатике #ЕГЭ24

Полный разбор задачи в Notion

👩‍💻 Код решения:
from string import *
alphabet = digits + ascii_uppercase
print(alphabet)

s = open('24.txt').readline()
maxi = 0
for a in alphabet:
s = s.replace(f'{a}', f'{a} {a}')
if maxi < max([len(x) for x in s.split()]):
maxi = max([len(x) for x in s.split()])
print(a, maxi)
s = s.replace(f'{a} {a}', f'{a}')
print(maxi)


Файлы к заданию: 24.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
986👏2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 8554 #kege по информатике #ЕГЭ9

Полный разбор задачи в Notion

👩‍💻 Код решения:
cnt = 0
for s in open('9.txt'):
M = [int(x) for x in s.split()]
if len([x for x in M if abs(x) % 10 == 3]) == 3:
A = [x for x in M if x > 0]
B = [x for x in M if x < 0]
if sum(A) ** 2 < sum(B) ** 2:
cnt += 1
print(cnt)


Файлы к заданию: 9.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8772