#kege #yandex
#reshu #statgrad
#polyakov
#ЕГЭ1 #ЕГЭ10 #ЕГЭ19
#ЕГЭ2 #ЕГЭ11 #ЕГЭ20
#ЕГЭ3 #ЕГЭ12 #ЕГЭ21
#ЕГЭ4 #ЕГЭ13 #ЕГЭ22
#ЕГЭ5 #ЕГЭ14 #ЕГЭ23
#ЕГЭ6 #ЕГЭ15 #ЕГЭ24
#ЕГЭ7 #ЕГЭ16 #ЕГЭ25
#ЕГЭ8 #ЕГЭ17 #ЕГЭ26
#ЕГЭ9 #ЕГЭ18 #ЕГЭ27
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
Все десятибуквенные коды, составленные из букв, входящих в слово
СКАНЕР, расположены в алфавитном порядке и пронумерованы.
Определите количество кодов, для которых одновременно выполнены условия:
1) номер кода в списке делится на 3;
2) первая буква кода – согласная;
3) код содержит ровно одну букву Р.
from itertools import product
num = 0
cnt = 0
for s in product(sorted('СКАНЕР'), repeat=10):
word = ''.join(s)
num += 1
if num % 3 == 0:
if word[0] in 'СКНР':
if word.count('Р') == 1:
cnt += 1
print(cnt)
# Ответ: 4531250
from itertools import product
Импорт функции product из модуля itertools, которая создает все возможные комбинации длиной n из указанных элементов.
num = 0
Инициализация переменной num для отслеживания общего количества рассмотренных комбинаций.
cnt = 0
Инициализация переменной cnt для подсчета количества комбинаций, удовлетворяющих условиям задачи.
for s in product(sorted('СКАНЕР'), repeat=10):
Цикл for, в котором перебираются все возможные комбинации длиной 10 символов из отсортированных букв 'СКАНЕР'.
word = ''.join(s)
Объединение символов из текущей комбинации в одно слово для дальнейшей проверки.
num += 1
Увеличение счетчика num на 1 для отслеживания количества рассмотренных комбинаций.
if num % 3 == 0:
Проверка, что номер рассматриваемой комбинации делится на 3 без остатка.
if word[0] in 'СКНР':
Проверка, содержит ли первая буква слова 'С', 'К', 'Н' или 'Р'.
if word.count('Р') == 1:
Проверка, что буква 'Р' встречается в слове ровно 1 раз.
cnt += 1
Увеличение счетчика cnt на 1, если текущая комбинация удовлетворяет всем условиям.
print(cnt)
Вывод количества комбинаций, удовлетворяющих заданным условиям.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Средний
Числа AB267D1_p и F024A89_p записаны в системе счисления с основанием p.
При каком минимальном p сумма этих чисел будет делиться на p–1?
Так как функция int(num, base) работает только в диапазоне от 2 до 36, то нам приходится написать свою универсальную функцию my_int(), изучите её и используйте в сложных задачах.
def my_int(num, base):
return sum(x*base**i for i, x in enumerate(num[::-1]))
for p in range(16, 100):
A = my_int([10, 11, 2, 6, 7, 13, 1], p)
B = my_int([15, 0, 2, 4, 10, 8, 9], p)
if (A + B) % (p-1) == 0:
print(p)
break
# Ответ: 50
def my_int(num, base):
Определение функции my_int, которая принимает список чисел num и основание base.
return sum(x*base**i for i, x in enumerate(num[::-1]))
Функция возвращает сумму произведений элементов списка num на соответствующие степени base.
for p in range(16, 100):
Запуск цикла for, который перебирает числа от 16 до 99 и использует их в качестве p.
if (my_int([10, 11, 2, 6, 7, 13, 1], p) + my_int([15, 0, 2, 4, 10, 8, 9], p)) % (p-1) == 0:
Проверка условия: сумма результатов функции my_int для двух списков их модуль по отношению к p-1 равен нулю.
print(p)
Вывод числа p, которое удовлетворяет условиям, после чего программа завершает работу, используя оператор break.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
Логическая функция F задаётся выражением:
((x ∨ y) → (y ∧ w)) ≡ ¬ ((y ∧ z) → (w ∨ x))
Дан частично заполненный фрагмент, содержащий неповторяющиеся
строки таблицы истинности функции F.
1 1 _ 1 | 1
0 _ 0 0 | 1
0 0 1 1 | 1
from itertools import *
def F(x, y, z, w):
return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))
for a1, a2 in product([0, 1], repeat=2):
table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
if len(set(table)) == len(table):
for i in permutations('xyzw'):
if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
print(*i, sep='')
# Ответ: zywx
from itertools import *
Импорт функций из модуля itertools, который предоставляет различные инструменты для работы с итерациями.
def F(x, y, z, w):
Определение функции F с параметрами x, y, z, w.
return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))
Возвращение результата выражения, которое сравнивает логические операции с параметрами функции.
for a1, a2 in product([0, 1], repeat=2):
Цикл, в котором перебираются все возможные комбинации пар из 0 и 1.
table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
Создание списка table с кортежами чисел 0 и 1, используемыми в качестве аргументов функции.
if len(set(table)) == len(table):
Проверка условия, что все элементы в table уникальны.
for i in permutations('xyzw'):
Цикл, который перебирает все перестановки символов 'xyzw'.
if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
Проверка условия, что результаты функции F для каждого элемента из table равны [1, 1, 1].
print(*i, sep='')
Вывод комбинации символов i без разделителя на экран.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
При каком наименьшем целом A выражение
((y < 20) → (x > 70)) ∨ ¬((x < A) → (y > A))
окажется тождественно истинным при любых целых значениях x и y?
Все 15 номера суперудобно решать через функцию all() про нее писали в этой статье.
def F(x, y, A):
return ((y < 20) <= (x > 70)) or (not((x < A) <= (y > A)))
for A in range(10000):
if all(F(x, y, A) for x in range(100) for y in range(100)):
print(A)
break
# Ответ: 71
def F(x, y, A):
Определение функции F, которая принимает три аргумента: x, y и A.
return ((y < 20) <= (x > 70)) or (not((x < A) <= (y > A)))
Функция возвращает результат логического выражения, которое проверяет два условия и возвращает результат их логической операции or.
for A in range(10000):
Запуск цикла for, который перебирает значения A от 0 до 9999.
if all(F(x, y, A) for x in range(100) for y in range(100)):
Проверка: все результаты функции F(x, y, A) истинны для всех комбинаций значений x от 0 до 99 и y от 0 до 99.
print(A)
Вывод значения A, которое соответствует условиям задачи, после чего выполнение программы завершается с помощью оператора break.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []
for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))
print(len(result), max(result))
# Ответ: 260 106865
numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.
filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.
result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.
for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.
# x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].
if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.
if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.
result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.
print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Средний
У исполнителя есть три команды, которые обозначены буквами:
A. Вычесть 1
B. Разделить на 2
С. Разделить на 3
Команда B может быть исполнена только для чётного числа, команда C –
только для числа, кратного 3.
Сколько существует программ, которые преобразуют исходное число 19
в число 1 и при этом траектория вычислений не содержит чисел 12 и 15?
def F(a, b):
A, B, C = 0, 0, 0
if a <= b or a == 12 or a == 15:
return a == b
A = F(a - 1, b)
if a % 2 == 0:
B = F(a // 2, b)
if a % 3 == 0:
C = F(a // 3, b)
return A + B + C
print(F(19, 1))
# Ответ: 43
def F(a, b):
Определение функции с именем F, которая принимает два аргумента a и b.
A, B, C = 0, 0, 0
Инициализация переменных A, B, C с начальным значением 0.
if a <= b or a == 12 or a == 15:
Проверка условия: если a меньше или равно b, или a равно 12, или a равно 15, то выполнить следующий блок кода.
return a == b
Возврат результата сравнения a и b (логическое значение True или False).
A = F(a - 1, b)
Вызов функции F с аргументами a - 1 и b и присвоение результата переменной A.
if a % 2 == 0:
Проверка условия: если a делится на 2 без остатка.
B = F(a // 2, b)
Вызов функции F с аргументами a // 2 и b и присвоение результата переменной B.
if a % 3 == 0:
Проверка условия: если a делится на 3 без остатка.
C = F(a // 3, b)
Вызов функции F с аргументами a // 3 и b и присвоение результата переменной C.
return A + B + C
Возврат суммы значений переменных A, B, C.
print(F(19, 1))
Вызов функции F с аргументами 19 и 1 и вывод результата выполнения функции.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Средний
Определите максимальную длину непрерывного фрагмента, который начинается и заканчивается одной и той же буквой из первой половины алфавита (от A до M) и не содержит эту букву внутри.
s = open('24.txt').readline()
maxi = 0
for a in 'ABCDEFGHIJKLM':
s = s.replace(a, f'{a} {a}')
maxi = max(maxi, max([len(x) for x in s.split()]))
s = s.replace(f'{a} {a}', a)
print(maxi)
# Ответ: 322
s = open('24.txt').readline()
Чтение строки из файла '24.txt' и присвоение её содержимого переменной s.
maxi = 0
Инициализация переменной maxi со значением 0, которая будет использоваться для хранения максимальной длины строки.
for a in 'ABCDEFGHIJKLM':
Начало цикла по буквам из строки 'ABCDEFGHIJKLM'.
s = s.replace(a, f'{a} {a}')
Замена каждого вхождения буквы a в строке s на a a.
maxi = max(maxi, max([len(x) for x in s.split()]))
Обновление переменной maxi, выбирая максимальное значение между текущим значением maxi и максимальной длиной слова из разделенной строки s.
s = s.replace(f'{a} {a}', a)
Восстановление оригинальной строки, заменяя a a на a.
print(maxi)
Вывод значения maxi, которое содержит максимальную длину слова после обработки всеми буквами из цикла.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
Найдите все натуральные числа, не превышающие 10**9, которые
соответствуют маске 4*64*9?7 и при этом без остатка делятся на 9117.
В ответе запишите все найденные числа в порядке возрастания.
from fnmatch import *
for x in range(9117, 10**9, 9117):
if fnmatch(str(x), '4*64*9?7'):
print(x)
# Ответ:
# 464967
# 41764977
# 406444977
# 436439907
# 464337927
# 464884947
from fnmatch import *
Импорт всех функций из модуля fnmatch, который предоставляет возможность использовать шаблоны для сравнения строк.
for x in range(9117, 10**9, 9117):
Цикл for для переменной x в диапазоне от 9117 до 10^9 с шагом 9117.
if fnmatch(str(x), '4*64*9?7'):
Проверка условия: если строковое представление числа x соответствует шаблону '4*64*9?7' с помощью функции fnmatch.
print(x)
Вывод числа x, которое удовлетворяет условию проверки шаблона.
Таким образом, приведенный код ищет числа в заданном диапазоне, которые соответствуют шаблону '4*64*9?7', где символ
*
означает любую последовательность символов, а символ ?
означает любой одиночный символ.Тут отвечают на вопросы
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
У нас уже собралась неплохая такая подборка 8 номеров, сохраняем и пользуемся! #ЕГЭ8 #useful
🚩 Разбор номера 17671 #kege по информатике #ЕГЭ8
Автор: Пересдача 04.07.2024
Уровень: Базовый
🚩 Разбор номера 17627 #kege по информатике #ЕГЭ8
Автор: Резервный день 19.06.2024
Уровень: Базовый
🚩 Разбор номера 5626 #kege по информатике #ЕГЭ8
🚩 Разбор номера 8417 #kege по информатике #ЕГЭ8
🚩 Разбор номера 15947 #reshu по информатике #ЕГЭ8
Уровень: Базовый
🚩 Разбор номера 4199 #polyakov по информатике #ЕГЭ8
Уровень: Сложный
🚩 Разбор номера 12917 #kege по информатике #ЕГЭ8
Автор: PRO100ЕГЭ
Уровень: Базовый
🚩 Разбор номера из нового варианта #statgrad по информатике #ЕГЭ8
Автор: Статград
Уровень: Базовый
🚩 Разбор номера 11827 #kege по информатике #ЕГЭ8
Автор: (Л. Шастин)
Уровень: Средний
🚩 Разбор номера 10090 #kege по информатике #ЕГЭ8
Уровень: Базовый
🚩 Разбор номера 12240 #kege по информатике #ЕГЭ8
Уровень: Базовый
🚩 Разбор номера 11827 #kege по информатике #ЕГЭ8
Автор: (Л. Шастин)
Уровень: Средний
🚩 Разбор номера 17521 #kege по информатике #ЕГЭ8
Автор: Основная волна 07.06.24
Уровень: Базовый
🚩 Разбор номера 17862 #kege по информатике #ЕГЭ8
Автор: Демоверсия 2025
Уровень: Базовый
Информатика ЕГЭ | itpy🧑💻
Поддержать автора донатом💵
Автор: Пересдача 04.07.2024
Уровень: Базовый
Автор: Резервный день 19.06.2024
Уровень: Базовый
Уровень: Базовый
Уровень: Сложный
Автор: PRO100ЕГЭ
Уровень: Базовый
Автор: Статград
Уровень: Базовый
Автор: (Л. Шастин)
Уровень: Средний
Уровень: Базовый
Уровень: Базовый
Автор: (Л. Шастин)
Уровень: Средний
Автор: Основная волна 07.06.24
Уровень: Базовый
Автор: Демоверсия 2025
Уровень: Базовый
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Уровень: Базовый
Автор: ЕГКР 27.04.24
Уровень: Базовый
Автор: Апробация 17.05
Уровень: Базовый
1. Домашка, задачи базового уровня (ФИПИ)
2. Практика, задачи повышенной сложности
Информатика ЕГЭ | itpy
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
4 8 5 4 2
Наша подборка Stepik задач №14 для подготовки
1. Домашка, задачи базового уровня (ФИПИ)
2. Практика, задачи повышенной сложности
Уровень: Базовый
Автор задачи: (М. Попков)
Уровень: Средний
Автор задачи: (А. Игнатюк)
Уровень: Сложный
Уровень: Средний
Автор: Статград
Уровень: Средний
Автор: Е.Джобс
Уровень: Базовый
Автор: Л. Шастин
Уровень: Базовый
Автор: Демоверсия 2025
Уровень: Базовый
Автор: Демоверсия 2025
Уровень: Базовый
Информатика ЕГЭ | itpy
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6❤🔥5🔥2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Исполнитель преобразует число на экране. У исполнителя есть две команды:
A. Прибавь 1
B. Умножить на 2
Сколько существует программ, которые преобразуют исходное число 1 в число 17 и при этом траектория вычислений содержит не более 4 четных чисел?
На картинке я прикрепил два своих решения одной и той же задачи, но позже заметил, что, несмотря на то что оба варианта дают правильный ответ, один из них неверный! А именно первый вариант является неправильным, так как в нем рассматриваются все цифры, а не числа. Правильным подходом будет разбить все числа с помощью c+' '+str(a), чтобы таким образом рассматривать лишь четные числа. Будьте внимательны!
def F(a, b, c):
if a >= b:
M = [int(x) for x in c.split() if int(x) % 2 == 0]
return a == b and len(M) <= 4
return F(a+1, b, c+' '+str(a)) + F(a*2, b, c+' '+str(a))
print(F(1, 17, ''))
# Ответ: 8
def F(a, b, c):
Объявление функции F с тремя параметрами: a, b и c.
if a >= b:
Проверка, если значение a больше или равно b.
M = [int(x) for x in c.split() if int(x) % 2 == 0]
Создание списка M, который содержит четные числа из строки c, преобразуя их в целые значения.
return a == b and len(M) <= 4
Возвращение результата: True, если a равно b и количество четных чисел в M не превышает 4.
return F(a+1, b, c+' '+str(a)) + F(a*2, b, c+' '+str(a))
Рекурсивный вызов функции F для двух случаев: увеличивая a на 1 и удваивая a, добавляя текущий a в строку c.
print(F(1, 17, ''))
Вызов функции F с параметрами 1, 17 и пустой строкой, вывод результата на экран.
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []
for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))
print(len(result), max(result))
# Ответ: 260 106865
numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.
filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.
result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.
for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.
# x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].
if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.
if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.
result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.
print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥7 4❤🔥3
Автор: Статград
Уровень: Базовый
Все десятибуквенные коды, составленные из букв, входящих в слово
СКАНЕР, расположены в алфавитном порядке и пронумерованы.
Определите количество кодов, для которых одновременно выполнены условия:
1) номер кода в списке делится на 3;
2) первая буква кода – согласная;
3) код содержит ровно одну букву Р.
Кликни, чтобы развернуть полностью
from itertools import product
num = 0
cnt = 0
for s in product(sorted('СКАНЕР'), repeat=10):
word = ''.join(s)
num += 1
if num % 3 == 0:
if word[0] in 'СКНР':
if word.count('Р') == 1:
cnt += 1
print(cnt)
Ответ: 4531250
from itertools import product
Импорт функции product из модуля itertools, которая создает все возможные комбинации длиной n из указанных элементов.
num = 0
Инициализация переменной num для отслеживания общего количества рассмотренных комбинаций.
cnt = 0
Инициализация переменной cnt для подсчета количества комбинаций, удовлетворяющих условиям задачи.
for s in product(sorted('СКАНЕР'), repeat=10):
Цикл for, в котором перебираются все возможные комбинации длиной 10 символов из отсортированных букв 'СКАНЕР'.
word = ''.join(s)
Объединение символов из текущей комбинации в одно слово для дальнейшей проверки.
num += 1
Увеличение счетчика num на 1 для отслеживания количества рассмотренных комбинаций.
if num % 3 == 0:
Проверка, что номер рассматриваемой комбинации делится на 3 без остатка.
if word[0] in 'СКНР':
Проверка, содержит ли первая буква слова 'С', 'К', 'Н' или 'Р'.
if word.count('Р') == 1:
Проверка, что буква 'Р' встречается в слове ровно 1 раз.
cnt += 1
Увеличение счетчика cnt на 1, если текущая комбинация удовлетворяет всем условиям.
print(cnt)
Вывод количества комбинаций, удовлетворяющих заданным условиям.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8🔥5 5❤1