Нашел интересную задачку 5 номера, есть смысл её разбирать или легчайшая? 🤔
Anonymous Poll
61%
Давайте сделаем ✈️
39%
Уже успел решить сам 👀
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: М. Шагитов
Уровень: Средний
Алгоритм принимает на вход натуральное число N и строит новое число R следующим образом:
1. Создается двоичная запись числа N.
2. Затем запись обрабатывается согласно следующим правилам:
а) Если N делится на 11, то к двоичной записи N справа добавляются все нули этой записи.
б) Если N не делится на 11, то к двоичной записи N слева добавляются все единицы этой записи.
3. Полученная запись представляет собой двоичную запись числа R.
Определите минимальное число N, после обработки которого алгоритмом получается число R, кратное 227.
for n in range(1, 1000):
s = f'{n:b}'
if n % 11 == 0:
s += s.count('0') * '0'
else:
s = s.count('1') * '1' + s
r = int(s, 2)
if r % 227 == 0:
print(n)
break
Ответ: 59
for n in range(1, 1000):
Цикл for, в котором переменная n перебирает значения от 1 до 999 для рассмотрения чисел.
s = f'{n:b}'
Преобразование числа n в двоичную строку и сохранение ее в переменной s.
if n % 11 == 0:
Проверка, делится ли число n на 11 без остатка.
s += s.count('0') * '0'
Если число n делится на 11, то в строку s добавляется количество нулей, равное количеству вхождений символа '0' в строку s.
else:
В случае, если число n не делится на 11.
s = s.count('1') * '1' + s
К строке s добавляется количество единиц, равное количеству вхождений символа '1' в строке s, сдвигая все символы вправо.
r = int(s, 2)
Преобразование двоичной строки s в целое число в переменной r.
if r % 227 == 0:
Проверка, делится ли число r на 227 без остатка.
print(n)
Вывод числа n, которое удовлетворяет условиям задачи.
break
Прерывание цикла после вывода первого числа n, удовлетворяющего условиям, так как используется break.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Базовый
Сколько существует девятеричных пятизначных чисел, содержащих в своей записи ровно одну цифру 5, в которых никакие две одинаковые цифры не стоят рядом?
Для задач с цифрами важно помнить, что никакое число не может начинаться с 0. Поэтому добавляем условие: "if x[0] > 0:"
from itertools import product
cnt = 0
for x in product(range(9), repeat=5):
if x[0] > 0:
if x.count(5) == 1:
if all(x[i] != x[i + 1] for i in range(4)):
cnt += 1
print(cnt)
# Ответ: 13377
from itertools import product
Импортируется функция product из модуля itertools, которая генерирует декартово произведение итерируемых объектов.
cnt = 0
Инициализируется переменная cnt, которая будет использоваться для подсчета количества значений, удовлетворяющих заданным условиям.
for x in product(range(9), repeat=5):
Запускается цикл for, в котором генерируются все возможные пятерки чисел от 0 до 8.
if x[0] > 0:
Проверяется, что первое число в пятерке больше 0.
if x.count(5) == 1:
Проверяется, что число 5 встречается в пятерке ровно один раз.
if all(x[i] != x[i + 1] for i in range(4)):
Проверяется, что все числа в пятерке попарно не равны друг другу, кроме последнего и предпоследнего чисел.
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
Потыкайте этот пример тут:
numbers = [3, 4, 2, 7, 2, 3, 8, 3, 1, 9]
A = [x**2 for x in numbers if x % 2 == 0]
print(A) # [16, 4, 4, 64]
B = [x**2 if x % 2 == 0 else x ** 3 for x in numbers]
print(B) # [27, 16, 4, 343, 4, 27, 64, 27, 1, 729]
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Информатика | Илья Андрианов | itpy 🧑💻
ОткрытыйВариантЕгэИнформатика2024.pdf
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Базовый
Сколько существует восьмеричных пятизначных чисел, не содержащих в своей записи цифру 1, в которых все цифры различны и никакие две чётные или две нечётные цифры не стоят рядом?
Про функцию all() я писал тут.
from itertools import *
cnt = 0
chet = '02 20 04 40 06 60 24 42 26 62 46 64'.split()
nechet = '35 53 37 73 57 75'.split()
for x in permutations('0234567', 5):
x = ''.join(x)
if x[0] != '0':
if all(y not in x for y in chet) and all(y not in x for y in nechet):
cnt += 1
print(cnt)
# Ответ: 180
from itertools import *
Импорт всех функций из модуля itertools, позволяющих работать с итераторами и комбинаторикой.
cnt = 0
Инициализация переменной cnt для подсчета количества чисел, удовлетворяющих условиям задачи.
chet = '02 20 04 40 06 60 24 42 26 62 46 64'.split()
Создание списка chet путем разделения строки на элементы, содержащие пары четных цифр '02', '20', '04', '40', '06', '60', '24', '42', '26', '62', '46', '64'.
nechet = '35 53 37 73 57 75'.split()
Создание списка nechet аналогичным способом для пар нечетных цифр '35', '53', '37', '73', '57', '75'.
for x in permutations('0234567', 5):
Цикл for, в котором перебираются все перестановки длиной 5 из цифр '0234567'.
x = ''.join(x)
Объединение перестановки x в строку для дальнейшей проверки.
if x[0] != '0':
Проверка, что первая цифра числа не равна 0.
if all(y not in x for y in chet) and all(y not in x for y in nechet):
Проверка, что число не содержит ни одной из четных пар из списка chet и ни одной из нечетных пар из списка nechet.
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
Появился новый легкий способ восстановит Тик Ток в России (для айфон), поэтому делюсь страничкой Lizzerd с которым мы совместно делаем эти видео для вас.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: (Л. Шастин)
Уровень: Средний
Определите количество семизначных чисел, записанных в восьмеричной системе счисления, запись которых содержит ровно две чётные цифры, и при этом никакая нечётная цифра не стоит рядом с цифрой 7.
Список четных чисел можно найти вот так: chet = [x for x in num if x in '02468']
from itertools import product
cnt = 0
for per in product('01234567', repeat=7):
num = ''.join(per)
if num[0] != '0':
if len([x for x in num if x in '02468']) == 2:
if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
cnt += 1
print(cnt)
# Ответ: 95904
from itertools import product
Импорт функции product из модуля itertools, которая создает все возможные комбинации длиной n из указанных элементов.
cnt = 0
Инициализация переменной cnt для подсчета количества чисел, удовлетворяющих условиям задачи.
for per in product('01234567', repeat=7):
Цикл for, в котором перебираются все комбинации длиной 7 из цифр от 0 до 7.
num = ''.join(per)
Создание строки num путем объединения элементов из текущей комбинации per.
if num[0] != '0':
Проверка, что первая цифра числа не равна 0.
if len([x for x in num if x in '02468']) == 2:
Проверка, что число содержит ровно 2 из цифр '02468'.
if all(pair not in num for pair in '71 17 37 73 57 75 77'.split()):
Проверка, что число не содержит никаких из заданных комбинаций цифр '71', '17', '37', '73', '57', '75', '77'.
cnt += 1
Увеличение счетчика cnt на 1, если число удовлетворяет всем условиям.
print(cnt)
Вывод количества чисел, удовлетворяющих заданным условиям.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM