В информатике существуют различные единицы измерения информации, которые позволяют оценить объем и количество данных. Одной из основных единиц измерения информации является бит (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
This media is not supported in your browser
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM
@lru_cache()
#tpyfrom 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
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный 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
👍5 5 4 3
Используется для создания всех возможных перестановок элементов. Рассмотрим несколько примеров:
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
👍11 6 5 3
This media is not supported in your browser
VIEW IN TELEGRAM
Закрепим изученную теорию, разберем пример 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)
Please open Telegram to view this post
VIEW IN TELEGRAM
Используется для создания декартова произведения последовательностей. Давайте рассмотрим несколько примеров использования этой функции:
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
This media is not supported in your browser
VIEW IN TELEGRAM
Закрепим изученную теорию, разберем пример 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()))
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Интересная задачка 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
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
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'))
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))
from ipaddress import *
net = ip_network('224.230.250.29/255.255.240.0', 0)
print(net.network_address)
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
This media is not supported in your browser
VIEW IN TELEGRAM
Телеграм предоставляет обширные возможности форматирования текста, делая его более выразительным и привлекательным для читателей. Давайте рассмотрим основные возможности форматирования текста в Телеграме:
Жирный шрифт
- сочетание клавиш cmd (ctrl) + BПример текста
Курсив
- сочетание клавиш cmd (ctrl) + IПример текста
Пример текста
Зачеркнутый текст
- сочетание клавиш cmd (ctrl) + Shift + XМоноширный шрифт
- полезный формат для передачи промокодов, паролей пользователям, так же подходит для кода) - сочетание клавиш cmd (ctrl) + Shift + MПример текста
Цитирование
- сочетание клавиш cmd (ctrl) + Shift + "."Пример текста
Пример текста
Пример текста
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Работа с файлами в 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()
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
for s in open('9.txt'):
M = [int(x) for x in s.split()]
for s in open('9.txt'):
M = [float(x) for x in s.replace(',', '.').split()]
M = [int(x) for x in open('17.txt')]
s = open('24.txt').readline()
s = open('24.txt').readlines()
for x in s:
print(x)
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Давайте повторим решение 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
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM