Автор: Е.Джобс
Уровень: Базовый
Определите количество пар элементов последовательности, в которых хотя бы одно число кратно минимальному двузначному значению последовательности, которое кратно сумме своих цифр.
Гарантируется, что в последовательности есть хотя бы одно двузначное число, соответствующее условию. В ответе запишите количество найденных пар чисел, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
M = [int(x) for x in open('0. files/17.txt')]
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
R = []
for i in range(len(M) - 1):
x, y = M[i], M[i + 1]
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
R.append(x + y)
print(len(R), max(R))
Ответ: 537 19247
M = [int(x) for x in open('0. files/17.txt')]
Читает файл '0. files/17.txt', преобразует каждую строку в целое число и сохраняет в список M
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
Создает список D из чисел M, у которых ровно две цифры (учитывая модуль) и которые делятся на сумму своих цифр
R = []
Инициализирует пустой список R для хранения сумм подходящих пар
for i in range(len(M) - 1):
Цикл по индексам списка M (кроме последнего элемента, чтобы не выйти за границы)
x, y = M[i], M[i + 1]
Берет текущий элемент x и следующий y из списка M
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
Проверяет, что хотя бы одно из чисел x или y делится на минимальное число из списка D
R.append(x + y)
Если условие выполняется, добавляет сумму x и y в список R
print(len(R), max(R))
Выводит количество найденных пар и максимальную сумму из списка R
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5👍3
Автор: М.Попков
Уровень: Средний
Откройте файл электронной таблицы, содержащей в каждой строке четыре натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены следующие условия:
– в строке есть только одно число, которое повторяется дважды, остальные два числа различны;
– все неповторяющиеся числа нечетны, повторяющиеся числа чётны.
В ответе запишите только число.
cnt = 0
for s in open('0. files/9.csv'):
M = sorted([int(x) for x in s.split(',')])
copied = [x for x in M if M.count(x) == 2]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied) == 2 and len(uncopied) == 2:
if all(x % 2 != 0 for x in uncopied):
if all(x % 2 == 0 for x in copied):
cnt += 1
print(cnt)
Ответ: 53
cnt = 0
Инициализация счетчика для подсчета подходящих строк.
for s in open('0. files/9.csv'):
Открытие файла и построчное чтение данных. Каждая строка s содержит числа, разделенные запятыми.
M = sorted([int(x) for x in s.split(',')])
Разделение строки по запятым, преобразование в целые числа и сортировка списка.
copied = [x for x in M if M.count(x) == 2]
Создание списка чисел, встречающихся ровно 2 раза (дубликаты).
uncopied = [x for x in M if M.count(x) == 1]
Создание списка уникальных чисел (встречаются 1 раз).
if len(copied) == 2 and len(uncopied) == 2:
Проверка, что есть ровно 2 дублирующихся числа (1 пара) и 2 уникальных числа.
if all(x % 2 != 0 for x in uncopied):
Проверка, что все уникальные числа нечетные.
if all(x % 2 == 0 for x in copied):
Проверка, что все дублирующиеся числа четные.
cnt += 1
Если все условия выполнены, счетчик увеличивается на 1.
print(cnt)
Вывод общего количества подходящих строк.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍3❤2🔥2
Автор: Д.Бахтиев
Уровень: Средний
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество троек последовательности, сумма цифр элементов которых равна минимальному положительному элементу последовательности, оканчивающемуся на 4. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
R = []
M = [int(x) for x in open('0. files/17.txt')]
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
for i in range(len(M) - 2):
a, b, c = M[i], M[i + 1], M[i + 2]
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
if summa == min(W):
R.append(a + b + c)
print(len(R), max(R))
Ответ: 11 180738
R = []
Создается пустой список R, в который будут записываться подходящие суммы троек чисел.
M = [int(x) for x in open('0. files/17.txt')]
Открывается файл 17.txt, читаются все числа и сохраняются в список M (каждое число преобразуется в int).
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
В список W попадают только положительные числа из M, у которых последняя цифра равна 4 (например, 14, 24, -34 не подойдет, т.к. по условию x > 0).
for i in range(len(M) - 2):
Цикл перебирает индексы списка M до предпоследнего элемента, чтобы можно было взять тройку чисел (a, b, c) = (M[i], M[i+1], M[i+2]).
a, b, c = M[i], M[i + 1], M[i + 2]
Текущая тройка чисел из M записывается в переменные a, b и c.
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
- str(a) + str(b) + str(c) — числа a, b, c преобразуются в строки и объединяются в одну строку (например, 123, -45, 678 → "123-45678").
- [int(x) for x in ... if x.isdigit()] — из этой строки берутся только цифры (минус игнорируется), и они преобразуются обратно в числа.
- sum(...) — вычисляется сумма всех цифр в тройке чисел.
if summa == min(W):
Проверяется, равна ли сумма цифр минимальному числу из W (т.е. минимальному положительному числу, оканчивающемуся на 4).
R.append(a + b + c)
Если условие выполнено, то сумма самой тройки чисел (a + b + c) добавляется в список R.
print(len(R), max(R))
В конце выводится:
- количество найденных троек (len(R)),
- максимальная сумма из этих троек (max(R)).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥3👍2
Автор: Yandex учебник
Уровень: Базовый
Определите количество строк таблицы, для чисел которых выполнены оба условия:
- в строке есть ровно одно число, которое повторяется дважды, а остальные числа различны;
- максимальное число строки повторяется столько же раз, сколько и минимальное.
cnt = 0
for s in open('0. files/9.csv'):
M = [int(x) for x in s.split(';')]
copied2 = [x for x in M if M.count(x) == 2]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied2) == 2 and len(uncopied) == 5:
if M.count(max(M)) == M.count(min(M)):
cnt += 1
print(cnt)
Ответ: 349
cnt = 0
Инициализируем счётчик, который будет считать строки, удовлетворяющие условиям задачи.
for s in open('0. files/9.csv'):
Построчно читаем файл '0. files/9.csv'; каждая строка — это строка s.
M = [int(x) for x in s.split(';')]
Преобразуем строку в список целых чисел, разделяя элементы по символу ';'.
copied2 = [x for x in M if M.count(x) == 2]
Создаём список чисел, которые встречаются ровно дважды.
uncopied = [x for x in M if M.count(x) == 1]
Создаём список чисел, которые встречаются только один раз.
if len(copied2) == 2 and len(uncopied) == 5:
Проверяем, что два различных числа встречаются по два раза, а пять других — по одному разу.
if M.count(max(M)) == M.count(min(M)):
Проверяем, что максимальное и минимальное значения в строке встречаются одинаковое количество раз.
cnt += 1
Если оба условия выполнены, увеличиваем счётчик подходящих строк на 1.
print(cnt)
Выводим количество строк, удовлетворяющих условиям задачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7👍3❤1
Информатика | Илья Андрианов | itpy 🧑💻
Вот пример упорядоченного плана изучения ключевых тем Python для успешной подготовки к ЕГЭ по информатике:
1. Типы данных
2. Базовая арифметика
3. Строки
4. Списки
5. Генераторы списков
6. Условные операторы
7. Циклы
8. Работа с функциями
9. Встроенные функции any и all
10. Рекурсия функций
11. Чтение текстовых файлов
12. Библиотека itertools
Тут оставлю ссылку на мой бесплатный Python курс, который буду этим летом доводить до ума. Как минимум хочу добавить видео!)
#⃣ Вся теория для ЕГЭ в одном месте
➡ Информатика ЕГЭ | чатик itpy 🧑💻
1. Типы данных
Основные: целые (int), вещественные (float), строковые (str), булевы (bool).
2. Базовая арифметика
Операторы +, -, *, /, //, %, возведение в степень.
3. Строки
Индексация, срезы, методы (например, .split(), .join(), .replace() и т. д.).
4. Списки
Создание, индексация, методы (append(), pop(), remove(), sort() и др.).
5. Генераторы списков
Краткий синтаксис для создания списков на основе существующих («list comprehensions»).
6. Условные операторы
Конструкция if / elif / else, логические выражения (and, or, not).
7. Циклы
for и while, ключевые слова break и continue.
8. Работа с функциями
Определение def, параметры и аргументы, возврат значения (return), область видимости.
9. Встроенные функции any и all
Применение для проверки условий над коллекциями.
10. Рекурсия функций
Основы рекурсивных вызовов, условия выхода, пример решения классических задач (факториал, обход дерева).
11. Чтение текстовых файлов
Открытие файла (open), чтение (read, readline, readlines), закрытие файла или контекстный менеджер (with).
12. Библиотека itertools
Функции product (декартово произведение), permutations (перестановки) и их применение в переборе комбинаций.
Тут оставлю ссылку на мой бесплатный Python курс, который буду этим летом доводить до ума. Как минимум хочу добавить видео!)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍3🔥3❤1
Автор: Сергей Горбачев
Уровень: Средний
У исполнителя есть три команды, которые обозначены цифрами:
1. Прибавить 3
2. Прибавить 4
3. Умножить на 2
Сколько существует программ, для которых при исходном числе 11 результатом будет являться отрезок [50;54], при этом траектория вычислений не содержит числа 23?
def F(a, b: list):
if a >= min(b) or a == 23:
return a in b
return F(a + 3, b) + F(a + 4, b) + F(a * 2, b)
print(F(11, [50, 51, 52, 53, 54]))
Ответ: 3254
def F(a, b: list):
• Объявление функции F с двумя параметрами: a (число) и b (список чисел).
if a >= min(b) or a == 23:
• Условие: если a больше или равен минимальному элементу списка b ИЛИ a равен 23.
return a in b
• Если условие выше выполняется, возвращается True/False (проверка, есть ли a в списке b).
return F(a + 3, b) + F(a + 4, b) + F(a * 2, b)
• Если условие не выполняется, функция вызывает саму себя рекурсивно с тремя разными значениями a:
• Результаты этих вызовов суммируются.
print(F(11, [50, 51, 52, 53, 54]))
Вызов функции с аргументами a = 11 и b = [50, 51, 52, 53, 54], затем вывод результата.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4❤4🔥4
Мы с авторами создали папку, в которой собрали увлекательные и полезные каналы связанные с учёбой
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10👍5🔥1
Срезы (slices) - это мощный инструмент в Python, позволяющий взять часть списка или строки, указав, что именно тебе нужно.
Общий вид срезов в Python:
A[начало:конец:шаг]
начало
— индекс, С КОТОРОГО начинаем (включается).конец
— индекс, ДО КОТОРОГО берём (не включается).шаг
— через сколько берём элементы (по умолчанию 1).s = "информатика"
print(s[0:5]) # 'инфор' (с 0 по 4 индекс)
print(s[::-1]) # 'акитамрофни' (разворот строки)
print(s[2:7]) # 'форма' (с 2 по 6 индекс)
print(s[:4]) # 'инфо' (с начала до 3 индекса)
print(s[-4:]) # 'тика' (последние 4 буквы)
print(s[::2]) # 'ифрмата' (каждая вторая буква)
nums = [4, 8, 15, 16, 23, 42]
print(nums[1:4]) # [8, 15, 16] (с 1 по 3 индекс)
print(nums[-3:]) # [16, 23, 42] (последние 3 элемента)
print(nums[:3]) # [4, 8, 15] (первые 3 элемента)
print(nums[::-1]) # [42, 23, 16, 15, 8, 4] (разворот списка)
print(nums[::2]) # [4, 15, 23] (каждый второй элемент)
а также 13, 14, 17 и других номерах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥5🔥4 2
Твой первый сайт не сделает себя сам! Начни карьеру в IT уже сейчас ⬇️
Алексей - стажер Яндекса, призер конкурсов от НИУ ВШЭ, ЦУ и МИСИС, победитель хакатонов и кейс-чемпионатов, выпустивший более 50 учеников. И он знает, как тебе помочь
14 июля у него стартует интенсив по веб-разработке от основ до первых проектов! За три недели вы освоите весь нужный стак: от HTML до Flask.
Вам точно стоит записаться на курс, если вы:
✔️ Мечтаете научиться создавать сайты с нуля и понимать, как всё работает внутри;
✔️ Хотите собрать проекты в портфолио для олимпиад, хакатонов или грантов;
✔️ Думаете о карьере в IT и хотите зарабатывать первые деньги на этом.
✨ Подписаться на канал Алексея: https://t.me/lkey_it
✨ Записаться на курс: ТЫК
Алексей - стажер Яндекса, призер конкурсов от НИУ ВШЭ, ЦУ и МИСИС, победитель хакатонов и кейс-чемпионатов, выпустивший более 50 учеников. И он знает, как тебе помочь
14 июля у него стартует интенсив по веб-разработке от основ до первых проектов! За три недели вы освоите весь нужный стак: от HTML до Flask.
Вам точно стоит записаться на курс, если вы:
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
Мы вместе с командой экспертов собрали единую папку лучших образовательных каналов. Всё самое полезное и атмосферное для продуктивной учёбы теперь в одном месте. Ознакомьтесь и выберите ресурсы, которые помогут вам достичь новых академических высот!
Ссылочку на нашу папку вы найдете тут🖥
Если хотите попасть в папку : @kubik2566🫢
Ссылочку на нашу папку вы найдете тут
Если хотите попасть в папку : @kubik2566
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤🔥2🫡2❤1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
👨💻 ТОП 5 самых простых номеров на информатике по-моему мнению #view
📱 Смотреть в TikTok
📱 Смотреть в YouTube
📱 Смотреть в ДЗЕН
📱 Смотреть в VK
📺 Все мои видео в одном месте
➡ Информатика ЕГЭ | чатик itpy 🧑💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥3👍2
Немного статистики с пресс-конференции по итогам ЕГЭ 2025
Средние баллы ЕГЭ 2025:
🔣 Математика профиль: 62
🔣 Русский язык: 60.7
🔣 Физика: 61.7
🔣 Информатика: 55,9
Средние баллы ЕГЭ 2024:
🔣 Математика профиль: 62,55
🔣 Русский язык: 63,88
🔣 Физика: 63,21
🔣 Информатика: 54,49
Экзамен в этом году был проще, чем в прошлом, но средний балл изменился незначительно.
Я думаю, это произошло потому, что к многим заданиям «ожидали» более сложных прототипов и просто не готовили более простые.
Как бы то ни было, такой результат, скорее всего, приведёт к тому, что в следующем году экзамен будет примерно таким же лёгким.
Можно смело сдавать ЕГЭ по инфе в 2026 году😆
➡ Информатика ЕГЭ | чатик itpy 🧑💻
Средние баллы ЕГЭ 2025:
Средние баллы ЕГЭ 2024:
Экзамен в этом году был проще, чем в прошлом, но средний балл изменился незначительно.
Я думаю, это произошло потому, что к многим заданиям «ожидали» более сложных прототипов и просто не готовили более простые.
Как бы то ни было, такой результат, скорее всего, приведёт к тому, что в следующем году экзамен будет примерно таким же лёгким.
Можно смело сдавать ЕГЭ по инфе в 2026 году
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6🤔3 2
Неожиданное наблюдение: На пересдачу по информатике зарегистрировалось больше людей, чем на математику и русский язык 🤔
Как можно объяснить это явление, учитывая, что информатику выбирают реже, да и экзамен в этом году не был чрезмерно сложным..
Источник Рособрнадзор:
Пресс-конференция: «Итоги основного периода ЕГЭ-2025»
➡ Информатика ЕГЭ | чатик itpy 🧑💻
Как можно объяснить это явление, учитывая, что информатику выбирают реже, да и экзамен в этом году не был чрезмерно сложным..
Источник Рособрнадзор:
Пресс-конференция: «Итоги основного периода ЕГЭ-2025»
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5 3 3
🟡 1 бит🟡 1 байт = 8 бит🟡 1 Кбайт = 2¹⁰ байт = 1024 байт🟡 1 Мбайт = 2¹⁰ Кбайт = 1024 Кбайт🟡 1 Гбайт = 2¹⁰ Мбайт = 1024 Мбайт🟡 1 Тбайт = 2¹⁰ Гбайт = 1024 Гбайт🟡 1 Пбайт = 2¹⁰ Тбайт = 1024 Тбайт
Смотрите и запоминайте, если в будущем не хотите получать глупых ошибок в 7 и 11 номерах.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7👍6
float
в Python? #tpyОтвет:
Почему так происходит:
Число 0.1 в двоичном виде - бесконечная дробь. В памяти оно хранится как ближайшее представимое значение, а не как точная десятичная дробь.
При выполнении операций (+, -, *, /) эти малые погрешности складываются.
Оператор == проверяет полное совпадение битов результата, поэтому даже «крошечная» разница даст False.
import math
# Два выражения, которые математически равны
a = 0.1 + 0.2
b = 0.3
# Прямое сравнение
print("a =", a) # a = 0.30000000000000004
print("b =", b) # b = 0.3
print("a == b ->", a == b) # False!
# Сравнение с учётом допуска погрешности
# По умолчанию rel_tol=1e-09, abs_tol=0.0
print("math.isclose(a, b) ->", math.isclose(a, b)) # True
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥2