This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Базовый
Все четырёхбуквенные слова, составленные из букв А, Л, Г, О, Р, И, Т, М, записаны в алфавитном порядке и пронумерованы, начиная с 1.
Начало списка выглядит так:
1. АААА
2. АААГ
3. АААИ
4. АААЛ
Под каким номером в списке идёт первое слово, которое начинается с букв ИГ?
Функция sorted() позволяет легко получить алфавитный порядок. А оператор break позволяет остановиться на первом слове.
from itertools import product
k = 0
for s in product(sorted('АЛГОРИТМ'), repeat=4):
word = ''.join(s)
k += 1
if word[:2] == 'ИГ':
print(k)
break
from itertools import product
Импортируется функция product из модуля itertools, которая генерирует декартово произведение итерабельных объектов.
k = 0
Инициализируется переменная k, которая будет использоваться для отслеживания количества итераций.
for s in product(sorted('АЛГОРИТМ'), repeat=4):
Запускается цикл for, в котором производится комбинация символов из отсортированной строки 'АЛГОРИТМ' с повторением в 4 раза.
word = ''.join(s)
Создается строка word, объединяя символы из текущей комбинации s.
k += 1
Увеличивается счетчик k на 1 для подсчета количества итераций.
if word[:2] == 'ИГ':
Проверяется, начинается ли текущее слово word с символов 'ИГ'.
print(k)
Если условие выполняется, то выводится значение счетчика k.
break
Происходит прерывание цикла после печати значения счетчика для первого слова, начинающегося с 'ИГ'.
s = sorted('АЛГОРИТМ')
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
word = a + b + c + d
k += 1
if word[:2] == 'ИГ':
print(k)
exit()
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Средний
Задач из ОГЭ, 5 номер, но считаю её весьма полезной, так как это усложненная вариация 23 номера ЕГЭ.
1. раздели на 2
2. вычти 1
Составьте алгоритм получения из чиcла 65 числа 4, содержащий не более 5 команд. В ответе запишите только номера команд.
Аудио с пояснением к коду решения оставлю в комментариях.
def F(a, b, t):
if a < b or len(t) > 5:
return 0
elif a == b and len(t) <= 5:
print(t)
return 1
else:
return F(a / 2, b, t+'1') + F(a-1, b, t+'2')
F(65, 4, '')
# Ответ: 21111
def F(a, b, t):
Определение функции F с тремя параметрами a, b, и t.
if a < b or len(t) > 5:
Проверка условия: если a меньше b или длина строки t превышает 5 символов.
return 0
Возврат значения 0, если условие из пункта 2 истинно.
elif a == b and len(t) <= 5:
Другое условие: если a равно b и длина строки t не превышает 5 символов.
print(t)
Вывод текущего состояния строки t.
return 1
Возврат значения 1, если условие из пункта 4 истинно.
else:
В случае, если ни одно из вышеперечисленных условий не выполнено.
return F(a / 2, b, t+'1') + F(a-1, b, t+'2')
Рекурсивный вызов функции F с различными значениями аргументов: для первого вызова a уменьшается вдвое и к строке t добавляется символ '1', для второго вызова a уменьшается на 1, к строке t добавляется символ '2'.
F(65, 4, '')
Вызов функции F с начальными значениями a=65, b=4, и пустой строкой t.
Поддержать автора: boosty
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
Подборка по 9 номерам уже тоже очень даже, пользуйтесь! #ЕГЭ9 #useful
🚩 Разбор номера 5664 #kege по информатике #ЕГЭ9
🚩 Разбор номера 63025 #reshu по информатике #ЕГЭ9
🚩 Разбор номера 8554 #kege по информатике #ЕГЭ9
🚩 Разбор номера #kege по информатике #ЕГЭ9
Автор: ЕГКР 27.04
Уровень: Базовый
🚩 Разбор номера 17863 #kege по информатике #ЕГЭ9
Автор: Демоверсия 2025
Уровень: Базовый
Информатика ЕГЭ | itpy🧑💻
Поддержать автора донатом💵
Автор: ЕГКР 27.04
Уровень: Базовый
Автор: Демоверсия 2025
Уровень: Базовый
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
2 5 4 3
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: РЕШУ ЕГЭ
Уровень: Базовый
Сколько слов длины 5, начинающихся с гласной буквы, можно составить из букв Е, Г, Э? Каждая буква может входить в слово несколько раз.
Крайне интересная задача, так как позволяет представить вот такое простое и эстетичное решение. Стандартное решение я постараюсь приложить в комментариях к этому посту.
from itertools import product
print([slovo[0] in 'ЕЭ' for slovo in product('ЕГЭ', repeat=5)].count(True))
# Ответ: 162
from itertools import product
Импортируем функцию product из модуля itertools, которая позволяет генерировать декартово произведение итераторов.
print([slovo[0] in 'ЕЭ' for slovo in product('ЕГЭ', repeat=5)]
В генераторе мы пробегаем все получившиеся слова через функцию product и если первый элемент слова является буквами Е или Э, то в список будет падать bool значение True.
.count(True))
Считаем количество истинных значений (True) в полученном списке и выводим это значение на экран.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
3 6 4 4
Автор: Статград
Уровень: Сложный
Уровень: Базовый
Автор: ЕГКР 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
Автор: Решу ЕГЭ
Уровень: Базовый
Определите максимальное количество идущих подряд пар символов AB или CB в прилагаемом файле.
Искомая подпоследовательность должна состоять только из пар AB, или только из пар CB, или только из пар AB и CB в произвольном порядке следования этих пар.
Этот номер очень удобно решается через замену всех "лишних" элементов.
s = open('files/24.txt').readline()
s = s.replace('AB', '*').replace('CB', '+')
for x in 'ABC':
s = s.replace(x, ' ')
print(max([len(x) for x in s.split()]))
print(len(max(s.split(), key=len)))
# Ответ: 65
s = open('files/24.txt').readline()
- Открывает файл с именем 'files/24.txt' и читает первую строку из этого файла, затем сохраняет её в переменную s.
s = s.replace('AB', '*').replace('CB', '+')
- Заменяет все вхождения 'AB' в строке Услона символ '*', затем заменяет все вхождения 'CB' на символ '+'.
for x in 'ABC':
- Инициализирует цикл, который будет последовательно проходить через каждую букву в строке 'ABC'.
s = s.replace(x, ' ')
- Для каждой буквы x в строке 'ABC', заменяет все её вхождения в строкеЭ24
Ана пробелы.
print(max([len(x) for x in s.split()]))
- Разделяет строку s на части (слова), используя пробелы как разделители, затем вычисляет длину каждой части и выводит максимальную из них.
print(len(max(s.split(), key=len)))
- Так же, как предыдущая строка, разделяет строку s на части (слова), используя пробелы в качестве разделителей, и затем находит и выводит длину самой длинной части в строке.
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Решу ЕГЭ
Уровень: Базовый
Все 5-буквенные слова, составленные из букв Б, К, Ф, Ц, записаны
в алфавитном порядке и пронумерованы. Вот начало списка:
1. БББББ
2. ББББК
3. ББББФ
4. ББББЦ
5. БББКБ
Запишите слово, которое стоит на 486-м месте от начала списка.
Разберем задачу 3 разными способами и каждый выберет, тот способ,который ему понравился.
s = sorted('БКФЦ')
print(s) # ['Б', 'К', 'Ф', 'Ц']
n = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
slovo = a + b + c + d + e
n += 1
if n == 486:
print(n, slovo)
s = sorted('БКФЦ')
s,
содержащий отсортированные символы строки 'БКФЦ'.
print(s) # ['Б', 'К', 'Ф', 'Ц']
s
для проверки.n = 0
n,
который будем использовать для подсчета количества сгенерированных слов.for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
s.
Каждый цикл отвечает за одну позицию в слове.slovo = a + b + c + d + e
slovo
путем объединения символов a, b, c, d, e.
n += 1
n
увеличивается на 1 для каждой новой комбинации.if n == 486:
print(n, slovo)
n
достигает значения 486, выводится номер комбинации и само слово.from itertools import *
n = 0
for p in product(sorted('БКФЦ'), repeat=5):
slovo = ''.join(p)
n += 1
if n == 486:
print(n, slovo)
from itertools import *
itertools,
который предоставляет функции для работы с комбинациями.n = 0
n
для подсчета количества сгенерированных слов.for p in product(sorted('БКФЦ'), repeat=5):
product,
которая генерирует все возможные комбинации из символов 'Б', 'К', 'Ф', 'Ц'
с длиной 5 .slovo = ''.join(p)
p
преобразуется в строку slovo
с помощью метода join.
n += 1
n
увеличивается на 1 для каждой новой комбинации.if n == 486:
print(n, slovo)
n
достигает значения 486, выводится номер комбинации и само слово.from itertools import *
for n, p in enumerate(product(sorted('БКФЦ'), repeat=5), 1):
slovo = ''.join(p)
if n == 486:
print(n, slovo)
from itertools import *
itertools.
for n, p in enumerate(product(sorted('БКФЦ'), repeat=5), 1):
enumerate,
которая добавляет счетчик n
к каждому элементу, генерируемому функцией product.
Счетчик начинается с 1.slovo = ''.join(p)
p
преобразуется в строку slovo
с помощью метода join.
if n == 486:
print(n, slovo)
n
достигает значения 486, выводится номер комбинации и само слово.Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8 4❤3🔥2