Матроскин купил большое количество непрозрачных бидонов, чтобы возить на рынок молочные продукты. матроскину нужно знать, какой именно продукт находиться в бидоне, и за сколько дней до поездки он заполнен. у матроскина есть набор карточек, на каждой из которых нанесен один из n символов. в наборе есть много карточек с каждым из n символов, а на крышке бидона есть два кармашка, в каждый из которых можно поместить одну карточку. матроскину определить минимальное количество различных символов – n, которые ему понадобятся для обозначения бидонов, если известно, что на рынок он ездит один раз в две недели, возит бидоны, заполненные продуктами только в промежуток времени с последней поездки, а продает молоко, сметану, сливки, простоквашу, кефир, творог, масло и ряженку. в ответе запишите целое число.
Ответы на вопрос:
в программе на питоне реализован алгоритм евклида для нахождения нод и найдено нок из формулы из условия. большая часть тестов для проверки использует случайные числа, для которых, например, проверяется, что нок и нод от (x, y) не изменяются, если их искать от (y, x), и т.д. (assert expr выбрасывает исключение, если expr ложно, так что если test сработало без ошибок, значит, всё ок)
def gcd_lcm(a, b):
x, y = a, b
while x ! = 0 and y ! = 0:
x, y = y % x, x
gcd = x + y
lcm = a // gcd * b
return gcd, lcm
def test():
from random import randint
x, y, z = [randint(1, 1000) for _ in range(3)]
xx = gcd_lcm(x, x)
xy = gcd_lcm(x, y)
yx = gcd_lcm(y, x)
yz = gcd_lcm(y, z)
x1 = gcd_lcm(x, 1)
zx_y = gcd_lcm(z * x, y)
zx_zy = gcd_lcm(z * x, z * y)
gcd_xy_z = gcd_lcm(xy[0], z)[0]
gcd_x_yz = gcd_lcm(x,
assert xx == (x, x)
assert xy == yx
assert xy[1] % xy[0] == 0
assert xy[1] % x == 0
assert xy[1] % y == 0
assert x % xy[0] == 0
assert y % xy[0] == 0
assert x1[0] == 1
assert x1[1] == x
assert zx_y[0] % xy[0] == 0
assert zx_y[1] % xy[1] == 0
assert zx_zy[0] == z * xy[0]
assert zx_zy[1] == z * xy[1]
assert gcd_xy_z == gcd_x_yz
assert gcd_lcm(2**7 * 3**15, 3**4 * 5**3) == (3**4, 2**7 * 3**15 * 5**3)
assert gcd_lcm(7 * 917887, 7 * 850177) == (7, 7 * 850177 * 917887)
if __name__ == "__main__":
for _ in range(100):
test()
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
lizakonnova18.02.2022 08:53
-
Katya14955526.01.2022 23:45
-
RepchatiLuchochek02.05.2023 12:43
-
bocmanlera30.04.2023 10:13
-
ярок22866610.07.2022 20:06
-
baby252529.06.2021 19:29
-
mazanamina201708.12.2022 07:38
-
egmoisee13.12.2020 17:50
-
2ihnik2123119.01.2022 06:17
-
Кирюха5555502.07.2022 09:17
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.