This media is not supported in your browser
VIEW IN TELEGRAM
Автор: PRO100 ЕГЭ
Уровень: Сложный
Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых комбинация символов RO встречается ровно 21 раз, а комбинации символов ORO и ROR ни разу не встречаются.
Если ORO и ROR найдутся в строке, то не нужно отсеивать все строку - необходимо разбить ее и исследовать подстроки по отдельности!
s = open('0. files/24.txt').readline()
s = s.split('RO')
maxi = 0
for i in range(len(s)-21):
r = 'O' + 'RO'.join(s[i:i+22]) + 'R'
if 'ROR' in r or 'ORO' in r:
r = r.replace('ROR', 'RO OR')
r = r.replace('ORO', 'OR RO')
maxi = max(maxi, max([len(x) for x in r.split()]))
print(maxi)Ответ: 814
s = open('24.txt').readline()s = s.split('RO')maxi = 0
for i in range(len(s)-21):
r = 'O' + 'RO'.join(si:i+22) + 'R'
if 'ROR' in r or 'ORO' in r:
r = r.replace('ROR', 'RO OR')r = r.replace('ORO', 'OR RO')maxi = max(maxi, max(len(x) for x in r.split()))
print(maxi)
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8 6👍5
Товарищи, важный вопрос! Какой вариант оформления комментариев к коду вам нравится больше: как в прошлом посте (1⃣ от 23 февраля) или как в позапрошлом (2⃣ от 22 февраля)? 🤔
Anonymous Poll
52%
48%
This media is not supported in your browser
VIEW IN TELEGRAM
14513 #kege по информатике #ЕГЭ24Автор: Л. Шастин
Уровень: Базовый
Назовём маской образец строки, который строится на основании служебных знаков # и &, причём знак # обозначает непустую последовательность из идущих подряд букв, а знак & задает непустую последовательность из идущих подряд цифр.
Определите в прилагаемом файле максимальную длину подстроки, которая соответствует маске #&#.
Очень понравилась эта задача, идея решения заключается в приведении всех букв к одному символу и всех цифр к другому символу. Затем разбиваем полученную последовательность на пары, разделенные пробелами, и убираем лишние цифры справа, после чего находим самую длинную строку.
from string import *
maxi = 0
s = open('0. files/24.txt').readline()
for x in digits:
s = s.replace(x, '&')
for x in ascii_uppercase:
s = s.replace(x, '#')
s = s.replace('&#', '& #')
s = s.split()
for i in range(len(s)-1):
r = ''.join(s[i:i+2])
while r[-1] == '&':
r = r[:-1]
maxi = max(maxi, len(r))
print(maxi)
Ответ: 49
from string import *
maxi = 0
s = open('24.txt').readline()for x in digits:
s = s.replace(x, '&')
for x in ascii_uppercase:
s = s.replace(x, '#')
s = s.replace('&#', '& #')s = s.split()
for i in range(len(s)-1):
r = ''.join(s[i:i+2])
while r[-1] == '&':
r = r[:-1]
maxi = max(maxi, len(r))
print(maxi)
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤10🔥3 3👍1
Ребзя, пройдите, пожалуйста, опрос!
Хочу узнать свою аудиторию получше. В особенности понять сколько здесь учеников 8-го и 9-го классов😍
Хочу узнать свою аудиторию получше. В особенности понять сколько здесь учеников 8-го и 9-го классов
Anonymous Poll
2%
Учусь в 8 классе
1%
Учусь в 9 классе
9%
Учусь в 10 классе
61%
Учусь в 11 классе
8%
Уже студент
2%
Родитель
10%
Репетитор Информатики
2%
Репетитор другой предмет
5%
Просто неравнодушный
Новый канал по подготовке к ОГЭ по информатике
Недавний опрос был не просто так - мы готовили для вас кое-что интересное! Вместе с моим другом мы запустили новый канал, который поможет вам подготовиться к ОГЭ по информатике на отлично!
На канале вас ждут:
Скоро я расскажу подробнее о проекте и познакомлю вас с нашим новым автором - экспертом в области информатики, который знает, как сделать подготовку максимально эффективной
Пожалуй уже оставлю ссылку на канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥4 4
К команде itpy присоединился Алексей, @lkeeeey 😀
Молодой специалист работает старшим мобильным разработчиком в проекте Extremum, а также делится своими знаниями и опытом, готовя ребят не только к сдаче экзамена ОГЭ по информатике, но и изучению различных языков прогрмирования (🤩
При поддержке нашей команды itpy он канал:
IT by lkey | itpy👨💻
Молодой специалист работает старшим мобильным разработчиком в проекте Extremum, а также делится своими знаниями и опытом, готовя ребят не только к сдаче экзамена ОГЭ по информатике, но и изучению различных языков прогрмирования (
python, c++, Kotlin, html, css, js) При поддержке нашей команды itpy он канал:
IT by lkey | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥12 5🔥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
Как вам формат больших разборов, хотели бы видеть больше таких полдробных разборов на канале?
Anonymous Poll
75%
19%
6%
This media is not supported in your browser
VIEW IN TELEGRAM
11616 #kege по информатике #ЕГЭ8Автор: М. Ишимов
Уровень: Средний
Сколько существует семнадцатеричных пятизначных чисел, не содержащих в своей записи более двух цифр 1, при этом никакая нечётная цифра не стоит рядом с цифрой 1?
Данный способ позволяет перебрать алфавит и отсортировать его.
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
print(alphabet[3:17:2])
from itertools import *
cnt = 0
for s in product(alphabet[:17], repeat=5):
num = ''.join(s)
if num[0] != '0':
if num.count('1') <= 2:
for a in alphabet[3:17:2]:
num = num.replace(a, '*')
if '1*' not in num and '*1' not in num and '11' not in num:
cnt += 1
print(cnt)Ответ: 1117608
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM') sorted сортирует символы в алфавитном порядке. print(alphabet[3:17:2])
from itertools import *
itertools, который предоставляет функции для работы с генерациями комбинаций.cnt = 0
cnt, которая будет использоваться для подсчета подходящих комбинаций.for s in product(alphabet[:17], repeat=5):
product, которая генерирует все возможные комбинации длиной 5 из первых 17 символов алфавита (alphabet[:17]).Каждая комбинация
s представляет собой кортеж из 5 символов.num = ''.join(s)
s преобразуется в строку num с помощью метода join.if num[0] != '0':
не равен '0'.if num.count('1') <= 2: '1' встречается в строке не более двух раз.for a in alphabet[3:17:2]:
num = num.replace(a, '*')
заменяется на '*' в строке.if '1*' not in num and '*1' not in num and '11' not in num:
нет подстрок '1*', '*1' и '11'.cnt += 1
увеличивается на 1.print(cnt)
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3❤🔥2
Forwarded from Программирование на Python | itpy 💻
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[2:5]
print(subset) # Вывод: [3, 4, 5]
Здесь мы извлекаем подсписок, начиная с индекса 2 и заканчивая индексом 5 (не включая). Это полезно, когда нам нужна определенная часть списка.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[1::2]
print(subset) # Вывод: [2, 4, 6, 8, 10]
В этом примере мы извлекаем каждый второй элемент, начиная с индекса 1, то есть все нечетные ИНДЕКСЫ.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reverse_list = my_list[::-1]
print(reverse_list) # Вывод: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Использование среза с отрицательным шагом позволяет нам легко создать список в обратном порядке.
my_string = "Hello, World!"
substring = my_string[7:12]
print(substring) # Вывод: "World"
В данном случае, мы извлекаем подстроку, начиная с индекса 7 и заканчивая индексом 12 (не включая). Это полезно для работы с текстовыми данными.
my_string = "Hello, World!"
substring = my_string[::2]
print(substring) # Вывод: "Hlo ol!"
Использование среза с шагом 2 помогает нам извлекать каждый второй символ из строки.
my_string = "Hello, World!"
reverse_string = my_string[::-1]
print(reverse_string) # Вывод: "!dlroW ,olleH"
Также, как и в случае с списками, срез с отрицательным шагом позволяет легко получить строку в обратном порядке.
Использование срезов делает код более эффективным и читаемым. Практикуйтесь в их применении, и вы обнаружите, насколько они улучшают ваши навыки работы с данными в Python.
Азим вкатывается в IT | itpy 💻
Наш второй канал по подготовке к ЕГЭ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7 3 3
Anonymous Poll
16%
52%
21%
11%
This media is not supported in your browser
VIEW IN TELEGRAM
8960 #kege по информатике #ЕГЭ25Автор: Е.Джобс
Уровень: Базовый
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Найдите первые пять чисел, больших 500 000, сумма делителей которых соответствует маске *7?. Найденные числа выведите в порядке возрастания, справа от каждого запишите найденную сумму делителей.
Нужно найти первые пять чисел, больших 500 000, сумма делителей которых соответствует маске *7?.
from fnmatch import *
def divisors(x):
div = []
for j in range(1, int(x**0.5)+1):
if x % j == 0:
div += [j, x // j]
return sorted(set(div))
k = 0
for x in range(500_001, 10**10):
summa = sum(divisors(x))
if fnmatch(str(summa), '*7?'):
print(x, summa)
k += 1
if k == 5:
break
Ответ:
500001 666672
500048 968874
500069 500070
500079 666776
500114 750174
from fnmatch import *Импортируется модуль fnmatch.
def divisors(x):Создаем функцию divisors.
div = []Создаётся пустой список div
for j in range(1, int(x**0.5)+1):Запускается цикл for, который проходит по всем числам от 1 до квадратного корня из x (включительно).
if x % j == 0:Проверяется, делится ли число x на j без остатка.
div += [j, x // j]Если j является делителем, то в список div добавляются как сам делитель j, так и результат деления x на j.
return sorted(set(div))Возвращается отсортированный список уникальных делителей.
k = 0Создаем счетчик.
for x in range(500_001, 10**10):
Запускается цикл for, который проходит по всем числам от 500,001 до 10^10.
summa = sum(divisors(x))Для каждого числа x вычисляется сумма всех его делителей с помощью функции divisors(x), а затем результат сохраняется в переменной summa.
if fnmatch(str(summa), '*7?'):Проверяется, соответствует ли строка, представляющая сумму делителей.
print(x, summa)Если условие выше выполняется, то выводится число x и сумма его делителей summa.
k += 1Увеличивается счётчик k на 1, так как найдено число, удовлетворяющее условию.
if k == 5:Проверяется, достиг ли счётчик k значения 5.
breakПрерывает выполнение цикла for, если найдено 5 чисел, удовлетворяющих условию.
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9 7🤯6
This media is not supported in your browser
VIEW IN TELEGRAM
4333 #kege по информатике #ЕГЭ23Автор: /dev/inf advanced
Уровень: Средний
Исполнитель преобразует число на экране.
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 3
3. Возвести в квадрат
Программа для исполнителя – это последовательность команд.
Известно, что исполнитель не может повторить команду, выполненную на предыдущем шаге. Например, если была выполнена команда 1, на следующем шаге могут быть выполнены только команды 2 или 3.
Сколько существует программ, для которых при исходном числе 1 результатом является число 25, и при этом траектория вычислений содержит число 5, но не содержит число 6?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 11, 12.
Исполнитель не может повторить команду, выполненную на предыдущем шаге.
def F(a, b, c):
if a >= b or a == 6:
return a == b
if c == '1':
return F(a + 3, b, '2') + F(a ** 2, b, '3')
if c == '2':
return F(a + 1, b, '1') + F(a ** 2, b, '3')
if c == '3':
return F(a + 1, b, '1') + F(a + 3, b, '2')
return F(a + 1, b, '1') + F(a + 3, b, '2') + F(a ** 2, b, '3')
print(F(1, 5, '') * F(5, 25, ''))
Ответ: 10
def F(a, b, c):Создается функция F, которая принимает три аргумента.
if a >= b or a == 6:Если текущее значение a больше или равно значению b, или a равно 6.
return a == bЕсли условие из предыдущей строки выполняется, функция возвращает True, и False в противном случае.
if c == '1':Проверяется, равно ли значение c строке '1'.
return F(a + 3, b, '2') + F(a 2, b, '3')Если c == '1', функция вызывает саму себя дважды.
if c == '2':Проверяется, равно ли значение c строке '2'.
return F(a + 1, b, '1') + F(a 2, b, '3')Если c == '2', функция вызывает саму себя дважды.
if c == '3':Проверяется, равно ли значение c строке '3'.
return F(a + 1, b, '1') + F(a + 3, b, '2')Если c == '3', функция вызывает саму себя дважды.
return F(a + 1, b, '1') + F(a + 3, b, '2') + F(a 2, b, '3')Если значение c не равно '1', '2' или '3' (например, пустая строка `''`), функция вызывает саму себя трижды.
print(F(1, 5, '') * F(5, 25, ''))Результаты этих вызовов перемножаются, и итоговое значение выводится на экран.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10 7🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
11953 #kege по информатике #ЕГЭ23Автор: PRO100 ЕГЭ
Уровень: Средний
Исполнитель преобразует число на экране. У исполнителя есть три команды, которые обозначены латинскими буквами:
A. Прибавить последнюю цифру
B. Добавить остаток от деления на 68
C. Возвести в квадрат
Программа для исполнителя – это последовательность команд.
Команда А прибавляет к числу его последнюю цифру. Например, из числа 68 получится число 76.
Команда B прибавляет к числу его остаток от деления на 68. Например, из числа 10 получится число 20.
Команда C возводит число в квадрат. Например, из числа 9 получится число 81.
Если после выполнения команды получается такое же число, то команду нельзя применять к этому числу. Например, к числу 10 нельзя применить команду A, так как 10 + 0 = 10.
Сколько существует программ, для которых при исходном числе 2 результатом является число 680, при этом траектория вычислений содержит число 68 и не содержит числа 100?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.
Если после выполнения команды получается такое же число, то команду нельзя применять к этому числу. Например, к числу 10 нельзя применить команду A, так как 10 + 0 = 10.
from functools import lru_cache
@lru_cache(None)
def F(a, b):
if a >= b or a == 100:
return a == b
count = 0
x = a % 10
if x != 0:
count += F(a + x, b)
x = a % 68
if x != 0:
count += F(a + x, b)
x = a ** 2
if x != a:
count += F(x, b)
return count
print(F(2, 68) * F(68, 680))
Ответ: 47997789947424
from functools import lru_cacheИмпортируется декоратор lru_cache из модуля functools.
@lru_cache(None)Декоратор lru_cache применяется к функции . Параметр None означает, что кэш не имеет ограничений по размеру.
def F(a, b):Определяется функция F, которая принимает два аргумента.
if a >= b or a == 100:Если текущее значение a больше или равно значению b, или a равно 100.
return a == bЕсли условие из предыдущей строки выполняется, функция возвращает True, и False в противном случае.
count = 0Создаем счетчик.
x = a % 10Вычисляется последняя цифра числа a.
if x != 0:Проверяется, не равна ли последняя цифра числа a нулю.
count += F(a + x, b)Если последняя цифра числа a не равна нулю, функция вызывает саму себя с аргументами (a + x, b) и результат этого вызова добавляется к переменной count.
x = a % 68Вычисляется остаток от деления числа a на 68.
if x != 0:Проверяется, не равен ли остаток от деления числа a на 68 нулю.
count += F(a + x, b)
Если остаток от деления числа a на 68 не равен нулю, функция вызывает саму себя с аргументами (a + x, b) и результат этого вызова добавляется к переменной count.
x = a** 2
Вычисляется квадрат числа a.
if x != a:Проверяется, не равен ли квадрат числа a самому числу a.
count += F(x, b)Если квадрат числа a не равен самому числу a, функция вызывает саму себя с аргументами (x, b) и результат этого вызова добавляется к переменной count.
return countВозвращается значение переменной count.
print(F(2, 68) * F(68, 680))Результаты этих вызовов перемножаются, и итоговое значение выводится на экран.
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥12 8❤6
This media is not supported in your browser
VIEW IN TELEGRAM
11228 #kege по информатике #ЕГЭ9Автор: М.Ишимов
Уровень: Сложный
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел всех строк таблицы, для которых выполнены оба условия:
– в строке есть только одно число, которое повторяется трижды, и только два числа, каждое из которых повторяется дважды;
– четыре наименьших числа строки можно разбить на две пары чисел с нечётными суммами.
В ответе запишите полученное число.
Определите сумму чисел всех строк таблицы
from itertools import *
summa = 0
for s in open('9.txt'):
M = sorted([int(x) for x in s.split()])
copied_2 = [x for x in M if M.count(x) == 2]
copied_3 = [x for x in M if M.count(x) == 3]
if len(copied_3) == 3 and len(copied_2) == 4:
if any(sum(p[:2]) % 2 != 0 and sum(p[2:]) % 2 != 0 for p in permutations(M[:4])):
summa += sum(M)
print(summa)
Ответ: 4675
from itertools import * Импортируется модуль itertools.
summa = 0Создается переменная summa.
for s in open('9.txt'): В цикле for происходит построчное чтение файла. Каждая строка файла сохраняется в переменную s.
M = sorted([int(x) for x in s.split()]) Строка s разбивается на список строк с помощью метода split(). Каждая строка преобразуется в целое число с помощью int(x). Полученный список чисел сортируется и сохраняется в переменную M.
copied_2 = [x for x in M if M.count(x) == 2]Создается список copied_2, который содержит элементы из списка M, встречающиеся ровно два раза.
copied_3 = [x for x in M if M.count(x) == 3]Создается список copied_3, который содержит элементы из списка M, встречающиеся ровно три раза.
if len(copied_3) == 3 and len(copied_2) == 4:Проверяется условие: если длина списка copied_3 равна 3 и длина списка copied_2 равна 4 .
if any(sum(p[:2]) % 2 != 0 and sum(p[2:]) % 2 != 0 for p in permutations(M[:4])):Генерируются все возможные перестановки первых четырех элементов списка M . Для каждой перестановки p проверяется, является ли сумма первых двух элементов нечетной и сумма последних двух элементов также нечетной.
summa += sum(M)Сумма всех элементов списка M добавляется к переменной summa.
print(summa)Выводится значение переменной summa.
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14👍8🔥6 6
📢 Интенсив по неравенствам ЕГЭ по математике (номер 15)! 🎯
🔥 Разберем все типы неравенств – от простых до сложных! Подойдет для 10-11 классов и всех, кто готовится к ЕГЭ!
📌 Что ты получишь?
✔️ 6 занятий по 1.5 часа с пошаговым разбором всех типов неравенств
✔️ Четкие методы решения и разбор сложных случаев
✔️ Мини-группу до 5 человек → индивидуальный подход
✔️ Тренировочный мини-экзамен перед ЕГЭ
Кто я? Меня зовут Марина и я 🔥 Репетитор по математике с опытом подготовки к профильному ЕГЭ по математике более 3 лет 💡 училась в ВШЭ на бюджете, а теперь студентка 3 курса Sejong University в Сеуле – знаю, как объяснить сложные темы простыми словами 📈 Готовлю учеников к экзаменам так, что они не просто решают задачи, а понимают математику
📅 Старт: 10 марта 🕔 Занятия по понедельникам в 17:00 (МСК) 💰 8000 руб. → 7000 руб. с промокодом "информат" (скидка 1000₽)
⚡️ Акция только для подписчиков этого канала! Промокод действует 48 часов!
Подробности на фотках!)
✉️ Записывайся в личку @marinkaavia_math – просто напиши "Хочу на интенсив" и укажи промокод!
🔥 Разберем все типы неравенств – от простых до сложных! Подойдет для 10-11 классов и всех, кто готовится к ЕГЭ!
📌 Что ты получишь?
✔️ 6 занятий по 1.5 часа с пошаговым разбором всех типов неравенств
✔️ Четкие методы решения и разбор сложных случаев
✔️ Мини-группу до 5 человек → индивидуальный подход
✔️ Тренировочный мини-экзамен перед ЕГЭ
Кто я? Меня зовут Марина и я 🔥 Репетитор по математике с опытом подготовки к профильному ЕГЭ по математике более 3 лет 💡 училась в ВШЭ на бюджете, а теперь студентка 3 курса Sejong University в Сеуле – знаю, как объяснить сложные темы простыми словами 📈 Готовлю учеников к экзаменам так, что они не просто решают задачи, а понимают математику
📅 Старт: 10 марта 🕔 Занятия по понедельникам в 17:00 (МСК) 💰 8000 руб. → 7000 руб. с промокодом "информат" (скидка 1000₽)
⚡️ Акция только для подписчиков этого канала! Промокод действует 48 часов!
Подробности на фотках!)
✉️ Записывайся в личку @marinkaavia_math – просто напиши "Хочу на интенсив" и укажи промокод!
👍18❤12🔥7
Forwarded from Программирование на Python | itpy 💻
This media is not supported in your browser
VIEW IN TELEGRAM
При подготовке к ЕГЭ по информатике важно уметь работать с различными системами счисления для таких номеров как 5 и 14. Сегодня разберем универсальную функцию на Python, которая позволяет перевести число из десятичной системы счисления в любую другую (от 2 до 36).
1. Импортируем необходимые символы:
from string import *
Здесь используются модули digits и ascii_uppercase, чтобы задать доступные символы для различных систем счисления.
2. Образуем строку alphabet:
alphabet = digits + ascii_uppercase
Эта строка содержит все символы, используемые в системах счисления: цифры от 0 до 9 и заглавные английские буквы от A до Z.
3. Основная функция convert:
def convert(n, b):
r = ''
while n > 0:
r += alphabet[n % b]
n //= b
return r[::-1]
Функция convert принимает два параметра: число n в десятичной системе и основание b, в которое его нужно перевести. Внутри цикла проводится деление числа n на основание b с остатком, который используется для получения соответствующего символа из alphabet. Собранные символы переворачиваются в обратном порядке для получения правильного представления числа в новой системе.
4. Примеры использования:
n = 15552
print(convert(n, 2)) # Перевод в двоичную систему
print(convert(n, 8)) # Перевод в восьмеричную систему
print(convert(n, 16)) # Перевод в шестнадцатеричную систему
print(convert(n, 3)) # Перевод в троичную систему
Эти примеры показывают, как использовать функцию для перевода числа 15552 в различные системы счисления.
Более короткий вариант написания этой функции оставлю в комментариях к этому посту, не стесняйтесь ставить реакции на этот пост
Информатика ЕГЭ | itpy
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥33🔥10👍7 6