Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Срезы (slices) - это мощный инструмент в Python, позволяющий извлекать подотрезки данных из последовательностей, таких как списки, строки и кортежи.
Синтаксис срезов в Python:
sequence[начало:конец:шаг]
начало
- индекс элемента, с которого начинается срез (включительно).конец
- индекс элемента, на котором срез заканчивается (не включительно).шаг
- опциональный параметр, определяющий, какие элементы будут выбраны (по умолчанию шаг равен 1).Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Очень грустно, когда посты не набирают реакций, это же так просто сделать «тык» 😪 . Давайте выберем набор(ы) emoji, который(е) вам нрави(я)тся больше всего. Сами наборы продублирую в комментариях 👇
Anonymous Poll
43%
29%
29%
24%
39%
24%
4%
Свои варианты можно оставить в комментариях 💻
This media is not supported in your browser
VIEW IN TELEGRAM
Люди не обновившие Телеграм такие: 🗿
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашел интересную задачку 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