12.05 Исполнитель «Чертежник»
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может
выполнять команду Сместиться на (где
,
— целые числа), перемещающую Чертёжника из точки с
координатами
в точку с координатами
. Чертёжнику был дан для исполнения следующий
алгоритм:
Начало
Сместиться на
Повтори раз
Сместиться на
Сместиться на
Конец повтори
Сместиться на
Конец
Укажите наибольшее возможное значение числа , для которого найдутся такие значения чисел
и
, что после
выполнения программы Чертёжник возвратится в исходную точку.
Решение руками
Запишем систему:
Перенесем выражения с N в одну сторону, а числа в другую:
Найдем НОД (наибольший общий делитель) чисел и
.
Получим ответ:
Решение программой
max_n = 0 for n in range(1, 33): if (-32 % n == 0) and (-20 % n == 0): a = (-32 // n) - 15 b = (-20 // n) + 9 x = 30 + n * (a + 15) + 2 y = 30 + n * (b - 9) - 10 if x == 0 and y == 0: max_n = n print(max_n)
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a, b – целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Чертёжнику был дан для исполнения следующий алгоритм:
Начало
Сместиться на (90, -40)
Повтори N раз
Сместиться на (a, b)
Сместиться на (18, 14)
Конец повтори
Сместиться на (-9, -2)
Сместиться на (-6, -3)
Конец
Укажите наибольшее возможное значение числа N, для которого найдутся такие значения чисел a и b, что после выполнения программы Чертёжник возвратится в исходную точку.
Решение руками
Запишем систему:
Перенесем выражения с N в одну сторону, а числа в другую:
Найдем НОД (наибольший общий делитель) чисел и
.
Получим ответ:
Решение программой
max_n = 0 for n in range(1, 16): if (-75 % n == 0) and (45 % n == 0): a = (-75 // n) - 18 b = (45 // n) - 14 x = 90 + n * (a + 18) - 9 - 6 y = -40 + n * (b + 14) - 2 - 3 if x == 0 and y == 0: max_n = n print(max_n)
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может
выполнять команду Сместиться на (c, d) (где c, d – целые числа), перемещающую Чертёжника из точки с координатами (x,
y) в точку с координатами (x + c, y + d).
Цикл
Повтори число раз
Последовательность команд
Конец повтори
означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Чертёжнику был дан для исполнения следующий алгоритм:
Начало
Сместиться на (-15, -144)
Повтори N раз
Сместиться на (c, 300)
Сместиться на (200, d)
Конец повтори
Сместиться на (-25, 72)
Конец
Укажите максимальное значение числа N>1, для которого найдутся такие значения чисел c и d, что после выполнения программы Чертежник возвратится в исходную точку.
Решение руками
Преобразуем все передвижения в систему:
|
|
НОД(40; 72) = 8 - ответ.
Решение программой
def find_max_n(): max_n = 0 for n in range(2, 41): if (40 % n == 0) and (72 % n == 0): c = (40 // n) - 200 d = (72 // n) - 300 x = -15 + n * (c + 200) - 25 y = -144 + n * (300 + d) + 72 if x == 0 and y == 0: max_n = n return max_n print(find_max_n())
Ошибка.
Попробуйте повторить позже
Исполнитель перемещается по координатной плоскости, оставляя след в виде линии.
может выполнять команду
сместиться на
, где
и
— целые числа, которые перемещают
из точки с координатами
в точку с
координатами
.
Цикл
ПОВТОРИ число РАЗ
последовательность команд
КОНЕЦ ПОВТОРИ
Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Исполнителю был дан для исполнения следующий алгоритм:
НАЧАЛО
сместиться на
ПОВТОРИТЬ раз
cместиться на
cместиться на
КОНЕЦ
сместиться на
КОНЕЦ
Определите минимальное натуральное значение , для которого найдутся такие значения чисел
и
, что после
выполнения программы
возвратится в исходную точку.
Решение руками
Запишем систему для координат и
, учитывая, что исполнитель вернулся в исходную точку:
Перенесем выражения с N в одну сторону, а числа в другую:
Найдем НОД (наибольший общий делитель) чисел и
.
Получим ответ:
Решение программой
def find_min_n(): for n in range(2, 100): if (-35 % n == 0) and (42 % n == 0): a = (-35 // n) - 31 b = (42 // n) - 9 x = -47 + n * (31 + a) + 82 y = -19 + n * (9 + b) - 23 if x == 0 and y == 0: return n return None print(find_min_n())
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может
выполнять команду сместиться на (где
— целые числа), перемещающую Чертёжника из точки с координатами
в точку с координатами
. Если числа
положительные, значение соответствующей координаты
увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке
.
Например, если Чертёжник находится в точке с координатами , то команда сместиться на
переместит
Чертёжника в точку
.
Запись
означает, что последовательность команд повторится
раз.
Чертёжнику был дан для исполнения следующий алгоритм:
Чему равны значения переменных и
, если известно, что Чертёжник остановился в точке
? В
ответе укажите два числа — сначала значение переменной
, затем переменной
, без пробелов и знаков
препинания.
Решение №1:
for k in range(100): for a in range(-300, 300): if (5 + k * a) == -11 and (45 + k * (-5)) == 25: print(str(a) + str(k))
Решение №2:
Давайте посчитаем на сколько по и
сдвинется Чертёжник: по
мы сдвинемся на
, а по
на
. Знаем, что Чертёжник остановился в точке (-11, 25). А значит получаем два уравнения:
и
. Из второго уравнения получаем, что
, и, подставив полученное
во второе уравнение, узнаём, что
. Пишем в ответ
.
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a, b – целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Чертёжнику был дан для исполнения следующий алгоритм:
Сместиться на (16, -21)
Повтори N раз
Сместиться на (a, b)
Сместиться на (-1, -2)
конец
Сместиться на (-60, -12)
После выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «Повтори . . . раз»?
Запишем два уравнения и составим из них систему. Система будет иметь такой вид:
|
Перенесём известную часть на правую сторону. Тогда получим:
|
Поделим данные уравнения на n. Получим:
|
НОД для 44 и 33 равен 11. Ответ:11
Решение питоном:
for n in range(100): for a in range(-100, 100): for b in range(-100, 100): x = y = 0 x += 16 y -= 21 for i in range(n): x += a y += b x -= 1 y -= 2 x -= 60 y -= 12 if x == 0 and y == 0: print(n)
Ошибка.
Попробуйте повторить позже
Исполнитель Чертежник перемещается на координатной плоскости, оставляя след в виде линии. Чертежник может выполнять команду Сместится на (a, b) (где a, b – целые числа), перемещающие Чертежника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Цикл ПОВТОРИ число РАЗ последовательность команд КОНЕЦ ПОВТОРИ
означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
НАЧАЛО Сместиться на (-11,32) ПОВТОРИ ... РАЗ Сместиться на (15,-12) Сместиться на (... , ...) КОНЕЦ ПОВТОРИ Сместиться на (-19,38) КОНЕЦ
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ ... РАЗ»?.
Решение руками
Запишем два уравнения и составим из них систему. Система будет иметь такой вид:
|
Перенесём известную часть на правую сторону. Тогда получим:
|
Поделим данные уравнения на n. Получим:
|
НОД для 30 и 70 равен 10. Ответ:10
Решение программой
def find_max_n(): max_n = 0 for n in range(1, 31): if (30 % n == 0) and (-70 % n == 0): a = (30 // n) - 15 b = (-70 // n) + 12 x = -11 + n * (15 + a) - 19 y = 32 + n * (-12 + b) + 38 if x == 0 and y == 0: max_n = n return max_n print(find_max_n())
Ошибка.
Попробуйте повторить позже
Исполнитель Чертежник перемещается на координатной плоскости, оставляя след в виде линии. Чертежник может выполнять команду Сместится на (a, b) (где a, b – целые числа), перемещающие Чертежника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается.
Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Цикл
ПОВТОРИ число РАЗ
последовательность команд
КОНЕЦ ПОВТОРИ
означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Чертёжнику был дан для исполнения следующий алгоритм (буквами n, a, b обозначены неизвестные числа, при этом n > 1):
НАЧАЛО
ПОВТОРИ n РАЗ
Сместиться на (-24, -7)
Сместиться на (a, b)
Сместиться на (15, 23)
КОНЕЦ ПОВТОРИ
Сместиться на (9, 16)
КОНЕЦ
Укажите наименьшее возможное значение числа n, для которого найдутся такие значения чисел a и b, что Чертёжник, начав выполнение программы из точки с координатами (-18,14), после выполнения алгоритма окажется в точке (12, 15).
Аналитическое решение:
Запишем два уравнения и составим из них систему. Система будет выглядеть так:
|
Перенесём известную часть в одну сторону,а неизвестную в другую. Тогда получим:
|
Как можем заметить,в скобках можно упростить выражение. Система примет такой вид:
|
Можно заметить,что если n = 1,то можно подобрать такие a и b,чтобы выполнялось уравнение. Тогда a будет равняться 12,а b равняться -17. Ответ:1
Программное решение:
ans = 0 for n in range(1, 200): flag = 0 for a in range(-500, 500): for b in range(-500, 500): if (-18 + n * (-24 + a + 15) + 9 == 12) and (14 + n * (-7 + b + 23) + 16 == 15): ans = n flag = 1 break if flag == 1: break if flag == 1: break print(ans)
Ошибка.
Попробуйте повторить позже
Исполнитель Ручка перемещается по координатной плоскости, оставляя след в виде линии. Ручка может выполнять команду сместиться на (a, b), где a и b - целые числа, которые перемещают "Ручка"из точки с координатами (x, y) в точку с координатами (x + a, y + b).
Цикл
ПОВТОРИ число РАЗ
последовательность команд
КОНЕЦ ПОВТОРИ
Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным). Ручке был дан для исполнения следующий алгоритм:
НАЧАЛО
сместиться на (-47, -19)
ПОВТОРИТЬ N раз
сместиться на (31, 9)
сместиться на (a, b)
КОНЕЦ
сместиться на (82, -23)
КОНЕЦ
Определите минимальное натуральное значение N > 1, для которого найдутся такие значения чисел a и b, что после выполнения программы Ручка возвратится в исходную точку?
Решение руками
Составим 2 уравнения. Так как робот должен вернуться в исходную точку, то сумма всех его перемещений равна нулю:
по оси X
по оси Y
Теперь наша задача найти число на которое делится 42 и 35 нацело, так как числа a, b у нас целые. Такое число одно - это 7.
Решение программой
def find_min_n(): for n in range(2, 100): if (-35 % n == 0) and (42 % n == 0): a = (-35 // n) - 31 b = (42 // n) - 9 x = -47 + n * (31 + a) + 82 y = -19 + n * (9 + b) - 23 if x == 0 and y == 0: return n return None print(find_min_n())
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c, d), где c и d — целые числа, которык перемещают Чертёжника из точки с координатами (x, y) в точку с координатами (x + c, y + d).
Чертёжнику был дан для исполнения следующий алгоритм:
НАЧАЛО
сместиться на (-29, -100)
ПОВТОРИ k РАЗ
сместиться на (c, 87)
сместиться на (32, d)
КОНЕЦ ПОВТОРИ
сместиться на (-25, 19)
КОНЕЦ
Укажите максимальное значение числа k > 1, для которого найдутся такие значения чисел c и d, что после выполнения программы Чертёжник возвратится в исходную точку.
Аналитическое решение:
Запишем условие в виде системы:
|
|
Нам нужно найти наибольшее k, чтобы система выполнялась. НОД(54, 81) = 27.
Программное решение:
for n in range(100): for c in range(-500, 500): for d in range(-500, 500): x = y = 0 x = x - 29 y = y - 100 for i in range(n): x = x + c y = y + 87 x = x + 32 y = y + d x = x - 25 y = y + 19 if x == 0 and y == 0: print(n) break
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x +a, y +b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
НАЧАЛО
Сместиться на (-11,32)
ПОВТОРИ ... РАЗ
Сместиться на (15,-12)
Сместиться на (... , ...)
КОНЕЦ ПОВТОРИ
Сместиться на (-19,38)
КОНЕЦ
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ ... РАЗ?
Аналитическое решение:
Запишем условие в виде системы:
|
|
Нам нужно найти наибольшее n, чтобы система выполнялась. НОД(30, -70) = 10.
Программное решение:
for n in range(100): for c in range(-500, 500): for d in range(-500, 500): x = y = 0 x = x - 11 y = y + 32 for i in range(n): x = x + 15 y = y - 12 x = x + c y = y + d x = x - 19 y = y + 38 if x == 0 and y == 0: print(n) break
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x +a, y +b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Чертёжнику был дан для исполнения следующий алгоритм (буквами n, a, b обозначены неизвестные числа, при этом n > 1):
НАЧАЛО
ПОВТОРИ n РАЗ
Сместиться на (-24, -7)
Сместиться на (a, b)
Сместиться на (15, 23)
КОНЕЦ ПОВТОРИ
Сместиться на (9, 16)
КОНЕЦ
Укажите наименьшее возможное значение числа n > 1, для которого найдутся такие значения чисел a и b, что Чертёжник, начав выполнение программы из точки с координатами (-18,14), после выполнения алгоритма окажется в точке (12, 15).
Аналитическое решение:
Запишем условие в виде системы:
|
|
Нам нужно найти наименьшее n, чтобы система выполнялась. И 21, и -15 делятся на 3, значит n = 3.
Программное решение:
for n in range(30): for a in range(-100, 100): for b in range(-100, 100): x = -18 y = 14 for i in range(n): x = x - 24 y = y - 7 x = x + a y = y + b x = x + 15 y = y + 23 x = x + 9 y = y + 16 if x == 12 and y == 15: print(n) break
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c, d), где c и d — целые числа, которые перемещают Чертёжника из точки с координатами (x, y) в точку с координатами (x + c, y + d).
Чертёжнику был дан для исполнения следующий алгоритм:
НАЧАЛО
сместиться на (17, 11)
ПОВТОРИ k РАЗ
сместиться на (c, d)
сместиться на (-5, -13)
КОНЕЦ ПОВТОРИ
сместиться на (-73, -60)
КОНЕЦ
Укажите количество чисел k > 1, для которого найдутся такие значения чисел c и d, что после выполнения программы Чертёжник возвратится в исходную точку.
Аналитическое решение:
Запишем условие в виде системы:
|
|
Нам нужно найти все k > 1, при которых система будет выполняться, то есть все общие делители чисел 56 и 49.
Делители числа 56: 2, 4, 7, 8, 14, 28, 56.
Делители числа 49: 7, 49.
Общий делитель у чисел только 1 - это число 7, значит ответ будет - 1.
Программное решение:
cnt = set() for n in range(2, 100): for a in range(-500, 500): for b in range(-500, 500): x = y = 0 x = x + 17 y = y + 11 for i in range(n): x = x + a y = y + b x = x - 5 y = y - 13 x = x - 73 y = y - 60 if x == 0 and y == 0: cnt.add(n) break print(len(cnt))
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c, d), где c и d — целые числа, которые перемещают Чертёжника из точки с координатами (x, y) в точку с координатами (x + c, y + d).
Чертёжнику был дан для исполнения следующий алгоритм:
НАЧАЛО
сместиться на (-3, 24)
ПОВТОРИ k РАЗ
сместиться на (91, b)
сместиться на (a, 54)
КОНЕЦ ПОВТОРИ
сместиться на (-15, 24)
КОНЕЦ
Укажите количество чисел k > 1, для которого найдутся такие значения чисел a и b, что после выполнения программы Чертёжник возвратится в исходную точку.
Решение руками
Запишем условие в виде системы:
|
|
Нам нужно найти количество подходящих k, для этого нужно определить все общие делители 18 и 48. Разложим на
простые множетели: ,
. Общие множители 2, 3, тогда общими делителями 18 и 48 будут
и
. Всего их 3.
Решение программой
cnt = set() for n in range(2, 100): for a in range(-100, 100): for b in range(-100, 100): x = y = 0 x = x - 3 y = y + 24 for i in range(n): x = x + 91 y = y + b x = x + a y = y + 54 x = x - 15 y = y + 24 if x == 0 and y == 0: cnt.add(n) break print(len(cnt))
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x +a, y +b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
НАЧАЛО
Сместиться на (12, 11)
ПОВТОРИ ... РАЗ
Сместиться на (... , ...)
Сместиться на (1, 2)
КОНЕЦ ПОВТОРИ
Сместиться на (-57,49)
КОНЕЦ
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ ... РАЗ?
Решение руками
Запишем условие в виде системы:
|
|
Можно заметить, что нам требуется такое максимальное число k, чтобы оно было делителем и 45, и -60, т.е. НОД этих чисел. НОД(45,60)=15.
Решение программой
for n in range(100): for a in range(-500, 500): for b in range(-500, 500): x = y = 0 x = x + 12 y = y + 11 for i in range(n): x = x + a y = y + b x = x + 1 y = y + 2 x = x - 57 y = y + 49 if x == 0 and y == 0: print(n) break
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x +a, y +b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
НАЧАЛО
Сместиться на (-1, -2)
ПОВТОРИ ... РАЗ
Сместиться на (... , ...)
Сместиться на (-1, -2)
КОНЕЦ ПОВТОРИ
Сместиться на (-20, -12)
КОНЕЦ
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ ... РАЗ?
Решение руками
Запишем условие в виде системы:
|
|
Можно заметить, что нам требуется такое максимальное число k, чтобы оно было делителем и 21, и 14, т.е. НОД этих чисел. НОД(21,14)=7.
Решение программой
for n in range(100): for a in range(-500, 500): for b in range(-500, 500): x = y = 0 x = x - 1 y = y - 2 for i in range(n): x = x + a y = y + b x = x - 1 y = y - 2 x = x - 20 y = y - 12 if x == 0 and y == 0: print(n) break
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x +a, y +b). Если числа a, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (2, 3), то команда Сместиться на (-5,2) переместит Чертёжника в точку (-3, 5).
Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
НАЧАЛО
Сместиться на (2, -5)
ПОВТОРИ ... РАЗ
Сместиться на (25, 12)
Сместиться на (... , ...)
КОНЕЦ ПОВТОРИ
Сместиться на (-17, -35)
КОНЕЦ
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ ... РАЗ?
Аналитическое решение:
Запишем условие в виде системы:
|
|
Нам нужно найти наибольшее n, чтобы система выполнялась. НОД(15, 40) = 5.
Программное решение:
for n in range(100): for a in range(-500, 500): for b in range(-500, 500): x = y = 0 x = x + 2 y = y - 5 for i in range(n): x = x + 25 y = y + 12 x = x + a y = y + b x = x - 17 y = y - 35 if x == 0 and y == 0: print(n)
Ошибка.
Попробуйте повторить позже
Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a, b – целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Чертёжнику был дан для исполнения следующий алгоритм:
Сместиться на (3, -8)
Повтори N раз
Сместиться на (7, b)
Сместиться на (a, 50)
Конец Повтори
Сместиться на (-31, 57)
Определите максимальное натуральное значение N, для которого найдутся такие значения чисел a и b, что после выполнения программы Чертёжник возвратится в исходную точку?
Решение руками
Запишем два уравнения и составим из них систему. Система будет иметь такой вид:
|
Перенесём известную часть на правую сторону. Тогда получим:
|
Поделим данные уравнения на n. Получим:
|
НОД для 28 и -49 равен 7. Ответ:7.
Решение программой
def find_max_n(): max_n = 0 for n in range(1, 29): if 28 % n == 0: a = (28 // n) - 7 if -49 % n == 0: b = (-49 // n) - 50 x = 3 + n * (7 + a) - 31 y = -8 + n * (b + 50) + 57 if x == 0 and y == 0: max_n = n return max_n result = find_max_n() print(result)