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
This media is not supported in your browser
VIEW IN TELEGRAM
Turtle
, чем может быть полезна на ЕГЭ #tpyБиблиотека Turtle в Python - это отличный способ познакомить начинающих программистов с основами графики и обучить их создавать интересные визуальные проекты.
Зачем нужна библиотека Turtle в Python?
Как использовать библиотеку Turtle в Python?
Для начала работы с библиотекой Turtle в Python необходимо импортировать модуль turtle. Вот простой пример создания окна и отображения черепахи:
import turtle
# Создание окна
wn = turtle.Screen()
wn.title("Графика с помощью Turtle")
# Создание черепахи
t = turtle.Turtle()
# Движение и рисование
t.forward(100) # перемещение вперед на 100 пикселей
t.left(90) # поворот налево на 90 градусов
t.circle(50) # рисование окружности радиусом 50 пикселей
# Закрытие окна при клике
wn.exitonclick()
Вы можете создавать более сложные рисунки, анимации и игры, используя разнообразные команды и методы этой библиотеки.
Библиотека Turtle отлично подходит для тех, кто хочет начать свой путь в мир программирования!
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
Двигает черепаху вперед на заданное расстояние.
import turtle as t
t.forward(100) #t.fd(100)
t.done()
Двигает черепаху назад на заданное расстояние.
import turtle as t
t.backward(50) #t.bk(50)
t.done()
Поворачивает черепаху направо на заданный угол.
import turtle as t
t.right(90) #t.rt(45)
t.done()
Поворачивает черепаху налево на заданный угол.
import turtle as t
t.left(45) #t.lt(45)
t.done()
Рисует окружность с заданным радиусом.
import turtle as t
t.circle(50)
t.done()
Эти примеры демонстрируют базовые функции библиотеки Turtle, которые помогают управлять черепахой.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
goto()
перемещает черепаху в указанные координаты на экране. Координаты задаются в виде пары (x, y), где x - горизонтальная координата, y - вертикальная координата.import turtle as t
t.goto(100, 100)
t.done()
setx()
перемещает черепаху к указанной горизонтальной координате, оставляя вертикальную координату без изменений.import turtle as t
t.setx(50)
t.done()
sety()
перемещает черепаху к указанной вертикальной координате, оставляя горизонтальную координату без изменений.import turtle as t
t.sety(-50)
t.done()
xcor()
возвращает текущее значение горизонтальной координаты черепахи.import turtle as t
x = t.xcor()
print("Текущая координата x:", x)
t.done()
ycor()
возвращает текущее значение вертикальной координаты черепахи.import turtle as t
y = t.ycor()
print("Текущая координата y:", y)
t.done()
Эти функции позволяют управлять положением черепахи на экране и получать текущие значения координат.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
down()
опускает перо черепахи, позволяя ей рисовать на экране.import turtle as t
t.down()
t.forward(100)
t.done()
up()
поднимает перо черепахи, останавливая рисование.import turtle as t
t.down()
t.forward(100)
t.up()
t.forward(50)
t.done()
dot(size, color)
рисует точку заданного размера (size) и цвета (color) в текущей позиции черепахи.import turtle as t
t.dot(10, "red")
t.done()
screensize(width, height)
устанавливает размеры экрана в пикселях. Это определяет размер доступной области для рисования.import turtle as t
t.screensize(800, 600)
t.done()
tracer(n, delay)
управляет скоростью отрисовки черепахи. n задает количество шагов отрисовки, а delay - задержку между шагами.import turtle as t
t.tracer(3, 100)
t.done()
done()
ожидает закрытия окна черепахи перед окончанием программы.import turtle as t
t.done()
Эти функции помогают управлять рисованием и настройками экрана при работе с библиотекой Turtle в Python.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
👏8 8 6
This media is not supported in your browser
VIEW IN TELEGRAM
import turtle as t
t.tracer(0)
t.left(90)
m = 20
t.up()
for _ in range(10):
t.right(120)
t.forward(12 * m)
t.down()
for _ in range(7):
t.forward(7 * m)
t.right(90)
for _ in range(5):
t.right(60)
t.forward(20 * m)
t.right(30)
t.up()
for x in range(-30, 30):
for y in range(-30, 30):
t.goto(x * m, y * m)
t.dot(2, 'red')
t.done()
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
from fnmatch import *
R = []
for x in range(53191, 10**10, 53191):
if fnmatch(str(x), '?136*'):
if str(x)[0] in '02468' and str(x)[-1] in '13579':
R.append([x, x // 53191])
for i in range(-5, 0):
print(*R[i])
from fnmatch import *
Импорт всех функций из модуля fnmatch для работы с шаблонами и строками.
R = []
Создание пустого списка R, куда будут добавляться результаты.
for x in range(53191, 10**10, 53191):
Цикл для перебора чисел от 53191 до 10**10 с шагом 53191.
if fnmatch(str(x), '?136*'):
Проверка, соответствует ли строковое представление числа x шаблону '?136*'.
if str(x)[0] in '02468' and str(x)[-1] in '13579':
Проверка, что первая цифра числа находится в диапазоне '02468', а последняя - в '13579'.
R.append([x, x // 53191])
Добавление пары чисел [x, x // 53191] в список R.
for i in range(-5, 0):
Цикл для вывода последних пяти элементов списка R.
print(*R[i])
Вывод списка элементов с индексами с -5 по -1.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9 5 5 4
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовил для вас методичку по решению 25 задач. Хочу отметить, что это не просто шпаргалка, а скорее пособие, которое поможет вам создать свою собственную "шпору".
В комментариях к этому посту закреплю файл в формате pdf
def Prost(x):
if x == 1:
return False
for i in range(2, int(x**0.5)+1):
if x % i == 0:
return False
return True
def Divisors(x):
div = []
for j in range(1, int(x ** 0.5) + 1):
if x % j == 0:
div += [j, x // j]
return sorted(set(div))
from fnmatch import *
for x in range(23, 10 ** 9, 23):
if fnmatch(str(x), '12345?7?8'):
print(x, x//23)
x = int(input())
if str(x) == str(x)[::-1]:
print(True)
else:
print(False)
Информатика ЕГЭ | itpy
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
👏12 6 6 1 1
Есть идея сделать ряд постов с разбором 13 номеров, актуально?
Anonymous Poll
95%
✅ Давайте, необходимо и интересно
5%
❌ Легкий/скучный номер
This media is not supported in your browser
VIEW IN TELEGRAM
По заданным IP-адресу узла и маске определите адрес сети.
IP-адрес узла: 129.131.130.64
Маска: 255.255.192.0
Простейшая задача 13 номера с которой стоит начать изучение этих задач. Главная формула:
Адрес сети = Адрес узла & Маска сети
где & - это операция побитовой конъюнкции.
from ipaddress import *
net = ip_network('129.131.130.64/255.255.192.0', 0)
print(net) # 129.131.128.0/18
from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.
net = ip_network('129.131.130.64/255.255.192.0', 0)
Создание объекта сети net с заданным IP-адресом и маской подсети, причем последний аргумент указывает на коррекцию префикса.
print(net)
Вывод объекта сети net.
# 129.131.128.0/18
Комментарий, указывающий на правильность адресации объекта сети: IP-адрес 129.131.128.0 с маской /18.
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
Для узла с IP-адресом 224.128.112.142 адрес сети равен 224.128.96.0.
Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.
Маска сети имеет длину 32 бита и вид 1111..000 (сначала единицы, потом нули). Поэтому мы можем перебрать ее значения через for mask in range(32+1):
from ipaddress import *
for mask in range(32+1):
net = ip_network(f'224.128.112.142/{mask}', 0)
if str(net) == f'224.128.96.0/{mask}':
print(str(net.netmask).split('.')[2])
from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.
Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).
net = ip_network(f'224.128.112.142/{mask}', 0)
Создание объекта сети net с заданным IP-адресом и переменной маской подсети, где последний аргумент указывает на коррекцию префикса.
if str(net) == f'224.128.96.0/{mask}':
Условие проверки соответствия адреса сети определенному значению.
print(str(net.netmask).split('.')[2])
Вывод третьего октета маски подсети из объекта сети net, если условие выполнено.
Please open Telegram to view this post
VIEW IN TELEGRAM
Подсчитал примерно 5-6 основных типов для 13 номера. После постов нужно ли сделать общую Шпаргалку?
Anonymous Poll
100%
✅ Точно надо
0%
❌ Скорее нет
This media is not supported in your browser
VIEW IN TELEGRAM
Два узла, находящиеся в одной сети, имеют IP-адреса 121.171.5.70 и 121.171.5.107.
Укажите наименьшее возможное количество адресов в этой сети.
from ipaddress import *
R = []
for mask in range(32+1):
net1 = ip_network(f'121.171.5.70/{mask}', 0)
net2 = ip_network(f'121.171.5.107/{mask}', 0)
if net1 == net2:
R.append(net1.num_addresses)
print(min(R))
Ответ: 64
from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.
R = []
Создание пустого списка R, куда будут добавляться результаты.
Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).
net1 = ip_network(f'121.171.5.70/{mask}', 0)
Создание объекта сети net1 с заданным IP-адресом и переменной маской подсети, с коррекцией префикса.
net2 = ip_network(f'121.171.5.107/{mask}', 0)
Создание объекта сети net2 с другим IP-адресом, но той же маской подсети.
if net1 == net2:
Условие проверки, совпадают ли сети net1 и net2.
R.append(net1.num_addresses)
Добавление количества адресов в сети net1 в список R.
print(min(R))
Вывод минимального значения количества адресов среди всех сетей, для которых условие совпадения сетей выполнилось.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор задачи: (C. Горбачёв)
Сеть задана IP-адресом 203.111.195.0 и маской сети 255.255.240.0. Сколько в этой сети IP-адресов, в двоичной записи которых количество нулей кратно трём, а также содержатся три подряд идущие единицы и три подряд идущих нуля одновременно?
В ответе укажите только число.
После того, как мы определили адрес сети с помощью функции ip_network, мы можем перебрать все IP-адреса в этой сети с помощью обычного цикла for ip in net.
from ipaddress import *
net = ip_network('203.111.195.0/255.255.240.0', 0)
cnt = 0
for ip in net:
s = f'{ip:b}'
if s.count('0') % 3 == 0:
if '111' in s and '000' in s:
cnt += 1
print(cnt)
# Ответ: 1043
from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.
net = ip_network('203.111.195.0/255.255.240.0', 0)
Создание объекта сети net с заданным IP-адресом и маской подсети, с коррекцией префикса.
cnt = 0
Инициализация счетчика cnt для подсчета количества IP-адресов, удовлетворяющих условиям.
Цикл for ip in net:
Для перебора всех IP-адресов в сети net.
s = f'{ip:b}'
Перевод IP-адреса в бинарное представление и сохранение в строковую переменную s.
if s.count('0') % 3 == 0:
Проверка условия: количество нулей в бинарном представлении делится на 3 без остатка.
if '111' in s and '000' in s:
Дополнительная проверка наличия подстрок '111' и '000' в бинарном представлении.
cnt += 1
Увеличение счетчика, если IP-адрес удовлетворяет обоим условиям.
print(cnt)
Вывод общего количества IP-адресов, которые соответствуют условиям.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор задачи: (Л. Шастин)
Сеть, в которой содержится узел с IP-адресом 207.0.A.167, задана маской сети 255.255.255.192, где A - некоторое допустимое для записи IP-адреса число. Определите количество значений A, для которых для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество нулей в левых двух байтах больше суммарного количества нулей в правых двух байтах.
В ответе укажите только число.
По условию задачи требуется перебрать значения допустимого для формирования IP-адреса числа A. Поскольку на каждое число A отводится 1 байт (8 бит), допустимые числа находятся в диапазоне от 0 до 255 (в двоичной системе счисления - от 00000000 до 11111111).
from ipaddress import *
cnt = 0
for A in range(0, 255+1):
net = ip_network(f'207.0.{A}.167/255.255.255.192', 0)
if all(f'{ip:b}'[:16].count('0') > f'{ip:b}'[16:].count('0') for ip in net):
cnt += 1
print(cnt)
# Ответ: 37
from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с IP-адресами и сетями.
cnt = 0
Инициализация переменной cnt для подсчета количества IP-адресов, удовлетворяющих условиям.
for A in range(0, 255+1):
Цикл для перебора значения A от 0 до 255 включительно.
net = ip_network(f'207.0.{A}.167/255.255.255.192', 0)
Создание объекта сети net с динамически формируемым IP-адресом, маской подсети и коррекцией префикса.
if all(f'{ip:b}'[:16].count('0') > f'{ip:b}'[16:].count('0') for ip in net):
Проверка условия: количество нулей в первой половине бинарного представления IP-адреса больше чем во второй половине для всех IP-адресов в сети.
cnt += 1
Увеличиваем счетчик, если IP-адрес удовлетворяет условию.
print(cnt)
Вывод количества IP-адресов в созданных сетях, соответствующих условиям.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовили для вас методическое пособие по решению 13 номера! Сохраняйте все, что нужно знать о задании
В комментариях к этому посту закреплю файл в формате pdf
from ipaddress import *
net = ip_network('адрес сети/маска')
net.netmask
net.num_addresses
net.network_address
for mask in range(33):
net = ip_network(f'адрес узла/{mask}', 0)
for ip in net:
ip_b = f'{ip:b}'
Информатика ЕГЭ | itpy
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
Ребят, сел делать разборы на канал.
Какой номер разбираем следующим?
Какой номер разбираем следующим?
Anonymous Poll
32%
5️⃣
24%
8️⃣
45%
1️⃣4️⃣
Здесь я и другие авторы готовы ответить на все ваши вопросы, касающиеся подготовки к ЕГЭ. Будем рады видеть вас в нашем сообществе!
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM