Тема 12. Алгоритмы – анализ сложных алгоритмов

12.05 Исполнитель «Чертежник»

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – анализ сложных алгоритмов
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 21#7436Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c,d )  , где c  и d  — целые числа, которык перемещают Чертёжника из точки с координатами (x,y)  в точку с координатами (x + c,y + d)  .

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

сместиться на (-32, -73)

ПОВТОРИ k  РАЗ

сместиться на (c,d)

сместиться на (246, − 114  )

КОНЕЦ ПОВТОРИ

сместиться на (− 16, 13  )

КОНЕЦ

Укажите максимальное значение числа k >  1  , для которого найдутся такие значения чисел c  и d  , что после выполнения программы Чертёжник возвратится в исходную точку.

Показать ответ и решение

Аналитическое решение:

Будем обозначать изменение первой координаты из скобки за Δx,  второй – за Δy.

Запишем изменения координат:

Δx =  − 32 + k(c + 246 ) − 16;

Δy =  − 73 + k (d − 114 ) + 13.

Возвращение исполнителя в исходную точку для математической записи изменения координат значит, что должно выполняться равенство нулю.

Таким образом, мы имеем систему из двух уравнений:

{
  − 32 + k (c + 246 ) − 16 = 0
  − 73 + k (d − 114 ) + 13 = 0

Преобразуем выражение:

{
  k(c + 246) = 48
  k(d − 114) = 60

Можно заметить, что нам требуется такое максимальное число k, чтобы оно было делителем и 48, и 60, т.е. НОД этих чисел. НОД(48,60)=12.

 

Программное решение:

ans = 0
for k in range(2, 100):
    fl = 0
    for c in range(-300, 300):
        for d in range(-300, 300):
            if (-32 + k * (c + 246) - 16) == 0 and (-73 + k * (d - 114) + 13) == 0:
                ans = k
                fl = 1
                break
        if fl:
            break
print(ans)

Ответ: 12

Ошибка.
Попробуйте повторить позже

Задача 22#7437Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c,d )  , где c  и d  — целые числа, которык перемещают Чертёжника из точки с координатами (x,y)  в точку с координатами (x + c,y + d)  .

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

сместиться на (-15, -144)

ПОВТОРИ k  РАЗ

сместиться на (c,300)

сместиться на (200,d  )

КОНЕЦ ПОВТОРИ

сместиться на (− 25, 72  )

КОНЕЦ

Укажите максимальное значение числа k >  1  , для которого найдутся такие значения чисел c  и d  , что после выполнения программы Чертёжник возвратится в исходную точку.

Показать ответ и решение

Аналитическое решение:

Будем обозначать изменение первой координаты из скобки за Δx,  второй – за Δy.

Запишем изменения координат:

Δx =  − 15 + k(c + 200 ) − 25;

Δy =  − 144 + k(300 + d) + 72.

Возвращение исполнителя в исходную точку для математической записи изменения координат значит, что должно выполняться равенство нулю.

Таким образом, мы имеем систему из двух уравнений:

{
  − 15 + k(c + 200) − 25 = 0
  − 144 + k(300 + d) + 72 = 0

Преобразуем выражение:

{
  k(c + 200) = 40
  k(300 + d) = 72

Можно заметить, что нам требуется такое максимальное число k, чтобы оно было делителем и 40, и 72, т.е. НОД этих чисел. НОД(40,72)=8.

 

Программное решение:

ans = 0
for k in range(2, 100):
    fl = 0
    for c in range(-300, 300):
        for d in range(-300, 300):
            if (-15 + k * (c + 200) - 25) == 0 and (-144 + k * (d + 300) + 72) == 0:
                ans = k
                fl = 1
                break
        if fl:
            break
print(ans)

Ответ: 8

Ошибка.
Попробуйте повторить позже

Задача 23#7438Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c,d )  , где c  и d  — целые числа, которык перемещают Чертёжника из точки с координатами (x,y)  в точку с координатами (x + c,y + d)  .

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

сместиться на (-15, -144)

ПОВТОРИ k  РАЗ

сместиться на (c,300)

сместиться на (200,d  )

КОНЕЦ ПОВТОРИ

сместиться на (− 25, 72  )

КОНЕЦ

Укажите количество чисел k > 1  , для которых найдутся такие значения чисел c  и d  , что после выполнения программы Чертёжник возвратится в исходную точку.

Показать ответ и решение

Аналитическое решение:

Будем обозначать изменение первой координаты из скобки за Δx,  второй – за Δy.

Запишем изменения координат:

Δx =  − 15 + k(c + 200 ) − 25;

Δy =  − 144 + k(300 + d) + 72.

Возвращение исполнителя в исходную точку для математической записи изменения координат значит, что должно выполняться равенство нулю.

Таким образом, мы имеем систему из двух уравнений:

{
  − 15 + k(c + 200) − 25 = 0
  − 144 + k(300 + d) + 72 = 0

Преобразуем выражение:

{
  k(c + 200) = 40
  k(300 + d) = 72

Можно заметить, что нам требуется определить количество чисел k, которые являются делителем и 40, и 72. Таких чисел три – 2, 4 и 8.

 

Программное решение:

ans = 0
for k in range(2, 100):
    fl = 0
    for c in range(-300, 300):
        for d in range(-300, 300):
            if (-15 + k * (c + 200) - 25) == 0 and (-144 + k * (d + 300) + 72) == 0:
                ans += 1
                fl = 1
                break
        if fl:
            break
print(ans)

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 24#7439Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c,d )  , где c  и d  — целые числа, которык перемещают Чертёжника из точки с координатами (x,y)  в точку с координатами (x + c,y + d)  .

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

сместиться на (-60, -360)

ПОВТОРИ k  РАЗ

сместиться на (c,216)

сместиться на (626,d  )

КОНЕЦ ПОВТОРИ

сместиться на (− 204, 8  )

КОНЕЦ

Укажите максимальное значение числа k >  1  , для которого найдутся такие значения чисел c  и d  , что после выполнения программы Чертёжник возвратится в исходную точку.

Показать ответ и решение

Аналитическое решение:

Будем обозначать изменение первой координаты из скобки за Δx,  второй – за Δy.

Запишем изменения координат:

Δx =  − 60 + k(c + 626 ) − 204;

Δy =  − 360 + k(216 + d) + 8.

Возвращение исполнителя в исходную точку для математической записи изменения координат значит, что должно выполняться равенство нулю.

Таким образом, мы имеем систему из двух уравнений:

{
  − 60 + k(c + 626) − 204 = 0
  − 360 + k(216 + d) + 8 = 0

Преобразуем выражение:

{
 k (c + 626 ) = 264
 k (216 +  d) = 352

Можно заметить, что нам требуется такое максимальное число k, чтобы оно было делителем и 264, и 352, т.е. НОД этих чисел. НОД(264,352)=88.

 

Программное решение:

for k in range(2, 100):
    fl = 0
    for c in range(-800, 0):
        for d in range(-800, 0):
            if (-60 + k * (c + 626) - 204) == 0 and (-360 + k * (d + 216) + 8) == 0:
                ans = k
                fl = 1
                break
        if fl:
            break
print(ans)

Ответ: 88

Ошибка.
Попробуйте повторить позже

Задача 25#7440Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c,d )  , где c  и d  — целые числа, которык перемещают Чертёжника из точки с координатами (x,y)  в точку с координатами (x + c,y + d)  .

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

сместиться на (-60, -360)

ПОВТОРИ k  РАЗ

сместиться на (c,216)

сместиться на (626,d  )

КОНЕЦ ПОВТОРИ

сместиться на (− 204, 8  )

КОНЕЦ

Укажите количество чисел k < 44  , для которых найдутся такие значения чисел c  и d  , что после выполнения программы Чертёжник возвратится в исходную точку.

Показать ответ и решение

Аналитическое решение:

Будем обозначать изменение первой координаты из скобки за Δx,  второй – за Δy.

Запишем изменения координат:

Δx =  − 60 + k(c + 626 ) − 204;

Δy =  − 360 + k(216 + d) + 8.

Возвращение исполнителя в исходную точку для математической записи изменения координат значит, что должно выполняться равенство нулю.

Таким образом, мы имеем систему из двух уравнений:

{
  − 60 + k(c + 626) − 204 = 0
  − 360 + k(216 + d) + 8 = 0

Преобразуем выражение:

{
 k (c + 626 ) = 264
 k (216 +  d) = 352

Можно заметить, что нам требуется определить количество чисел k, которые являются делителем и 264, и 352. Отсеяв делители большие или равные 44, мы получим совпадения в следующих числах: 1, 2, 4, 8, 11 и 22. Этих чисел 6, значит это ответ к задаче.

 

Программное решение:

ans = 0
for k in range(1, 45):
    fl = 0
    for c in range(-800, 0):
        for d in range(-800, 0):
            if (-60 + k * (c + 626) - 204) == 0 and (-360 + k * (d + 216) + 8) == 0:
                ans += 1
                fl = 1
                break
        if fl:
            break
print(ans)

Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 26#7441Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (c,d )  , где c  и d  — целые числа, которык перемещают Чертёжника из точки с координатами (x,y)  в точку с координатами (x + c,y + d)  .

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

сместиться на (194, -209)

ПОВТОРИ k  РАЗ

сместиться на (c,937)

сместиться на (0,d  )

КОНЕЦ ПОВТОРИ

сместиться на (− 860, −  531  )

КОНЕЦ

Укажите количество чисел k ≤ 37  , для которых найдутся такие значения чисел c  и d  , что после выполнения программы Чертёжник возвратится в исходную точку.

Показать ответ и решение

Аналитическое решение:

Будем обозначать изменение первой координаты из скобки за Δx,  второй – за Δy.

Запишем изменения координат:

Δx =  194 + k(c + 0) − 860;

Δy =  − 209 + k(937 + d) − 531.

Возвращение исполнителя в исходную точку для математической записи изменения координат значит, что должно выполняться равенство нулю.

Таким образом, мы имеем систему из двух уравнений:

{
 194 +  k(c + 0 ) − 860 = 0
 − 209 + k (937 +  d) − 531 = 0

Преобразуем выражение:

{
 k (c + 0) = 666
 k (937 +  d) = 740

Можно заметить, что нам требуется определить количество чисел k, которые являются делителем и 666, и 740. Отсеяв делители большие 37, мы получим совпадения в следующих числах: 1, 2 и 37. Этих чисел 3, значит это ответ к задаче.

 

Программное решение:

ans = 0
for k in range(1, 38):
    fl = 0
    for c in range(-1000, 1000):
        for d in range(-1000, 1000):
            if (194 + k * (c + 0) - 860) == 0 and (-209 + k * (d + 937) - 531) == 0:
                ans += 1
                print(k)
                fl = 1
                break
        if fl:
            break
print(ans)

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 27#11473Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, —6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (a  , b  )

   ПОВТОРИ 3 РАЗ

      сместиться на (5, -10)

   КОНЕЦ ПОВТОРИ

   сместиться на (-3, 13)

КОНЕЦ

Чему равны значения a  и b  , если известно, что после выполнения приведенной выше программы Чертёжник вернулся в начальную позицию? В ответ укажите через пробел два числа – сначала значение переменной a  , затем значение переменной b  .

Показать ответ и решение

Аналитическое решение:

Чертёжник вернулся в исходную точку, значит обе его координаты в итоге должны быть равны нулю.

x = a+ 3∗ 5− 3 = a+ 12 = 0 ⇒ a = − 12.

y = b− 3∗ 10 + 13 = b− 17 = 0 ⇒ b = 17.

 

Программное решение:

for a in range(-200, 200):
    for b in range(-200, 200):
        if (a + 3 * 5 - 3 == 0) and (b - 3 * 10 + 13 == 0):
            print(a, b)

Ответ: -12 17

Ошибка.
Попробуйте повторить позже

Задача 28#11475Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, —6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (5, 45)

   ПОВТОРИ k  РАЗ

      сместиться на (a  , -5)

   КОНЕЦ ПОВТОРИ

КОНЕЦ

Чему равны значения переменных a  и k  , если известно, что Чертёжник остановился в точке (-11, 25)? В ответ укажите через пробел два числа – сначала значение переменной a  , затем переменной k  .

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (-11, 25), значит конечные координаты равны этим числам.

y = 45− k∗ 5 = 25 ⇒ k = 4.

x = 5+ 4∗ a = − 11 ⇒ a = − 4.

 

Программное решение:

for k in range(1, 100):
    for a in range(-200, 200):
        if (5 + k * a == -11) and (45 - k * 5 == 25):
            print(a, k)

Ответ: -4 4

Ошибка.
Попробуйте повторить позже

Задача 29#11476Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, —6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k  РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (7, 77)

   ПОВТОРИ k  РАЗ

      сместиться на (6, b  )

      сместиться на (4, -4)

   КОНЕЦ ПОВТОРИ

   сместиться на (-6, -66)

КОНЕЦ

Чему равны значения переменных b  и k  , если известно, что Чертёжник остановился в точке (21, -9)? В ответ укажите через пробел два числа – сначала значение переменной b  , затем переменной k  .

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (21, -9), значит конечные координаты равны этим числам.

x = 7+ k∗ (6+ 4)− 6 = 10k + 1 = 21 ⇒ k = 2.

y = 77+ 2∗ (b − 4) − 66 = 2b+ 3 = − 9 ⇒ b = − 6.

 

Программное решение:

for k in range(1, 100):
    for b in range(-200, 200):
        if (7 + k * (6 + 4) - 6 == 21) and (77 + k * (b - 4) - 66 == -9):
            print(b, k)

Ответ: -6 2

Ошибка.
Попробуйте повторить позже

Задача 30#11487Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, —6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (a  , b  )

   ПОВТОРИ 3 РАЗ

      сместиться на (b  , a  )

   КОНЕЦ ПОВТОРИ

   сместиться на (-5, -7)

КОНЕЦ

Найдите чему равны значения переменных a  и b  , если после выполнения алгоритма выше Чертёжник вернулся в начальную позицию. В ответе укажите два числа через пробел – сначала значение переменной a  , затем переменной b  .

Показать ответ и решение

Решение руками

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = a+ 3b− 5 = 0.

y = b+ 3a− 7 = 0.

Для a,b  подходят числа 2, 1. Можно проверить подставив их в уравнения.

Решение программой

for a in range(-100, 101):
    for b in range(-100, 101):
        x = a + 3 * b - 5
        y = b + 3 * a - 7
        if x == 0 and y == 0:
            print(a, b)
            break

Ответ: 2 1

Ошибка.
Попробуйте повторить позже

Задача 31#11489Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, —6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (a  , b  )

   ПОВТОРИ 3 РАЗ

      сместиться на (b  , c  )

   КОНЕЦ ПОВТОРИ

   сместиться на (80, 120)

КОНЕЦ

Найдите чему равны значения переменных a  , b  и c  , если после выполнения алгоритма выше Чертёжник вернулся в начальную позицию. Также известно, что a+ b = 10  . В ответе укажите три числа через пробел – сначала значение переменной a  , затем переменной b  , затем переменной c  .

Показать ответ и решение

Решение руками

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = a+ 3b+ 80 = 0.

y = b+ 3c+ 120 = 0.

Вычтем из первого уравнения удвоенное второе:

a +3b − 2b + 80− 240− 6c = a + b− 160− 6c = 0.

a +b = 10,  значит 10− 160− 6c = − 150− 6c = 0 ⇒ c = − 25.

Вернемся к исходным уравнениям подставив c  .

x = a+ 3b+ 80 = 0.

y = b− 75+ 120 = b + 45 = 0.

Вычтем из первого уравнения утроенное второе:

a +3b − 3b + 80− 135 = a − 55 = 0 ⇒ a = 55.

Подставим a  в первое уравнение:

55+ 3b +80 = 3b+ 135 = 0 ⇒ b = − 45.

Решение программой

for a in range(-100, 101):
    for c in range(-100, 101):
        b = 10 - a
        x = a + 3 * b + 80
        y = b + 3 * c + 120
        if x == 0 and y == 0:
            print(a, b, c)
            break

Ответ: 55 -45 -25

Ошибка.
Попробуйте повторить позже

Задача 32#11506Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, -6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (-171, -146)

   ПОВТОРИ N РАЗ

      сместиться на (-78, b)

      сместиться на (a, 138)

   КОНЕЦ ПОВТОРИ

   сместиться на (50, 41)

КОНЕЦ

Сколько существует натуральных значений N,  для которых найдутся такие значения чисел a  и b,  что после выполнения программы Чертёжник возвратится в исходную точку?

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = − 171+ N ∗(a− 78)+ 50 = 0

y = − 146+ N ∗ (b+ 138)+ 41 = 0

Перенесём все числа в левые части:

N ∗ (a − 78) = 121 = 112

N ∗ (b + 138) = 105 = 3∗ 5∗ 7

Для выбранных N  должны подобраться целые значения в скобках. Значит N  должно быть делителем чисел 121 и 105. Единственным общим множителем у них является число 1.

 

Программное решение:

ans = 0
for n in range(1, 200):
    flag = 0
    for a in range(-500, 500):
        for b in range(-500, 500):
            if (-171 + n * (-78 + a) + 50 == 0) and (-146 + n * (b + 138) + 41 == 0):
                ans += 1
                flag = 1
                break
        if flag == 1:
            break
print(ans)

Ответ: 1

Ошибка.
Попробуйте повторить позже

Задача 33#11508Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, -6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (-32, -11)

   ПОВТОРИ N РАЗ

      сместиться на (a, b)

      сместиться на (8, 6)

   КОНЕЦ ПОВТОРИ

   сместиться на (8, -5)

КОНЕЦ

Чему равно максимальное значение N,  при котором найдутся такие значения чисел a  и b,  что после выполнения программы Чертёжник возвратится в исходную точку?

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = − 32 +N ∗(a+ 8)+ 8 = 0

y = − 11+ N ∗(b+ 6)− 5 = 0

Перенесём все числа в левые части:

N ∗ (a + 8) = 24 = 23 ∗3

                 4
N ∗ (b + 6) = 16 = 2

Для выбранных N  должны подобраться целые значения в скобках. Значит N  должно быть делителем чисел 24 и 16. Максимальное такое число — 8.

 

Программное решение:

ans = 0
for n in range(1, 200):
    flag = 0
    for a in range(-500, 500):
        for b in range(-500, 500):
            if (-32 + n * (8 + a) + 8 == 0) and (-11 + n * (b + 6) - 5 == 0):
                ans = n
                flag = 1
                break
        if flag == 1:
            break
print(ans)

Ответ: 8

Ошибка.
Попробуйте повторить позже

Задача 34#11510Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, -6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   Сместиться на (148, -139)

   ПОВТОРИ N РАЗ

      сместиться на (3, b)

      сместиться на (a, 179)

   КОНЕЦ ПОВТОРИ

   сместиться на (-193, 34)

КОНЕЦ

Чему равно максимальное значение N,  при котором найдутся такие значения чисел a  и b,  что после выполнения программы Чертёжник возвратится в исходную точку?

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = 148+ N ∗(a + 3) − 193 = 0

y = − 139+ N ∗ (b+ 179)+ 34 = 0

Перенесём все числа в левые части:

N ∗ (a + 3) = 45 = 32 ∗5

N ∗ (b + 179) = 105 = 3∗ 5∗ 7

Для выбранных N  должны подобраться целые значения в скобках. Значит N  должно быть делителем чисел 45 и 105. Максимальное такое число — 15.

 

Программное решение:

ans = 0
for n in range(1, 200):
    flag = 0
    for a in range(-500, 500):
        for b in range(-500, 500):
            if (148 + n * (3 + a) - 193 == 0) and (-139 + n * (b + 179) + 34 == 0):
                ans = n
                flag = 1
                break
        if flag == 1:
            break
print(ans)

Ответ: 15

Ошибка.
Попробуйте повторить позже

Задача 35#11512Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, -6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (-30, -110)

   ПОВТОРИ N РАЗ

      сместиться на (a,b)

      сместиться на (76,-93)

   КОНЕЦ ПОВТОРИ

   сместиться на (0,5)

КОНЕЦ

Чему равно максимальное значение N,  при котором найдутся такие значения чисел a  и b,  что после выполнения программы Чертёжник возвратится в исходную точку?

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = − 30 +N ∗(a+ 76) = 0

y = − 110+ N ∗ (b− 93)+ 5 = 0

Перенесём все числа в левые части:

N ∗ (a + 76) = 30 = 2 ∗3∗ 5

N ∗ (b − 93) = 105 = 3∗ 5∗ 7

Для выбранных N  должны подобраться целые значения в скобках. Значит N  должно быть делителем чисел 30 и 105. Максимальное такое число — 15.

 

Программное решение:

ans = 0
for n in range(1, 200):
    flag = 0
    for a in range(-500, 500):
        for b in range(-500, 500):
            if (-30 + n * (76 + a) + 0 == 0) and (-110 + n * (b - 93) + 5 == 0):
                ans = n
                flag = 1
                break
        if flag == 1:
            break
print(ans)

Ответ: 15

Ошибка.
Попробуйте повторить позже

Задача 36#11513Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (а, b) (где а, b — целые числа), перемещающую Чертёжника из точки с координатами (х, у) в точку с координатами (х + а, у + b). Если числа а, b положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0, 0).

Например, если Чертёжник находится в точке с координатами (5, 7), то команда сместиться на (5, -6) переместит Чертёжника в точку (10, 1).

Запись

ПОВТОРИ k РАЗ

   Команда1

   Команда2

   КомандаЗ

КОНЕЦ ПОВТОРИ

означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз.

Чертёжнику был дан для исполнения следующий алгоритм:

   НАЧАЛО

   сместиться на (387, -75)

   ПОВТОРИ N РАЗ

      сместиться на (-68, b)

      сместиться на (a, -194)

   КОНЕЦ ПОВТОРИ

   сместиться на (-555, 51)

КОНЕЦ

Сколько существует натуральных значений N,  для которых найдутся такие значения чисел a  и b,  что после выполнения программы Крабоед возвратится в исходную точку?

Показать ответ и решение

Аналитическое решение:

Чертёжник остановился в точке (0, 0), значит конечные координаты равны этим числам.

x = 387+ N ∗(a − 68) − 555 = 0

y = − 75+ N ∗(b− 194)+ 51 = 0

Перенесём все числа в левые части:

N ∗ (a − 68) = 168 = 23 ∗3∗ 7

                   3
N ∗ (b − 194) = 24 = 2 ∗ 3

Для выбранных N  должны подобраться целые значения в скобках. Значит N  должно быть делителем чисел 168 и 24. Таких чисел всего 8 — 1, 2, 4, 8, 3, 6, 12, 24.

 

Программное решение:

ans = 0
for n in range(1, 200):
    flag = 0
    for a in range(-500, 500):
        for b in range(-500, 500):
            if (387 + n * (-68 + a) - 555 == 0) and (-75 + n * (b - 194) + 51 == 0):
                ans += 1
                flag = 1
                break
        if flag == 1:
            break
print(ans)

Ответ: 8

Ошибка.
Попробуйте повторить позже

Задача 37#15987Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a,b)  (где a,b  — целые числа), перемещающую Чертёжника из точки с координатами (x,y)  в точку с координатами (x+ a,y + b)  . Если числа a,b  положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0,0)  .

Например, если Чертёжник находится в точке с координатами (5,7)  , то команда сместиться на (5,− 6)  переместит Чертёжника в точку (10,1)  .

Запись

П ОВТ ОР И k РА З

   К оманда1

   К оманда2

   К оманда3

К ОНЕ Ц ПО ВТ ОРИ

означает, что последовательность команд К оманда1 К оманда2 Команда3  повторится k  раз.

Чертёжнику был дан для исполнения следующий алгоритм:

Н АЧА ЛО

   сместиться на (24,55)

   П ОВТ ОР И k Р АЗ

      см еститься на (− 1,b)

      см еститься на (− 2,− 4)

   К ОН ЕЦ ПО ВТ ОРИ

   сместиться на (− 3,− 62)

К ОНЕ Ц

Чему равны значения переменных b  и k  , если известно, что Чертёжник остановился в точке (0,0)  ? В ответ укажите через пробел два числа — сначала значение переменной b  , затем переменной k  .

Показать ответ и решение

Решение руками

Чертёжник остановился в точке (0,0)  , значит конечные координаты равны этим числам.

x = 24+ k⋅(− 1− 2)− 3 = − 3k+ 21 = 0 ⇒ k = 7.

y = 55+ 7⋅(b− 4)− 62 = 7b− 35 = 0 ⇒ b = 5.

Решение программой

for k in range(1, 22):
    if 21 % k == 0:
        b = (7 // k) + 4
        x = 24 + k * (-1 + -2) - 3
        y = 55 + k * (b + -4) - 62
        if x == 0 and y == 0:
            print(b, k)
            break


Ответ: 5 7

Ошибка.
Попробуйте повторить позже

Задача 38#15988Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a,b)  (где a,b  — целые числа), перемещающую Чертёжника из точки с координатами (x,y)  в точку с координатами (x+ a,y + b)  . Если числа a,b  положительные, значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Изначально чертежник стоит в начале системы координат т.е. в точке (0,0)  .

Например, если Чертёжник находится в точке с координатами (5,7)  , то команда сместиться на (5,− 6)  переместит Чертёжника в точку (10,1)  .

Запись

П ОВТ ОР И k Р АЗ

   К оманда1

   К оманда2

   К оманда3

К ОНЕ Ц ПО ВТ ОРИ

означает, что последовательность команд К оманда1 К оманда2 Команда3  повторится k  раз.

Чертёжнику был дан для исполнения следующий алгоритм:

Н АЧА ЛО

   сместиться на (8,16)

   П ОВТ ОР И k Р АЗ

      см еститься на (− 6,b)

      см еститься на (2,1)

   К ОН ЕЦ ПО ВТ ОРИ

   сместиться на (− 4,− 66)

К ОНЕ Ц

Чему равны значения переменных b  и k  , если известно, что Чертёжник остановился в точке (0,0)  ? В ответ укажите через пробел два числа — сначала значение переменной b  , затем переменной k  .

Показать ответ и решение

Решение аналитически:

Чертёжник остановился в точке (0,0)  , значит, конечные координаты равны этим числам.

x = 8+ k⋅(− 6+ 2)− 4 = − 4k+ 4 = 0 ⇒ k = 1.

y = 16+ (b+ 1)− 66 = b− 49 = 0 ⇒ b = 49.

Решение программой:

for k in range(100):
    for b in range(-100, 100):
        if (8 + k * (-6 + 2) - 4) == 0 and (16 + k * (b + 1) - 66) == 0:
            print(b, k)

Ответ: 49 1

Ошибка.
Попробуйте повторить позже

Задача 39#23996Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (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)

   КОНЕЦ ПОВТОРИ

Сместиться на (19,16)

КОНЕЦ

Укажите наименьшее возможное значение числа n, для которого найдутся такие значения чисел a  и b  , что Чертёжник, начав выполнение программы из точки с координатами (− 18,14)  , после выполнения алгоритма окажется в точке (13,16)  .

Показать ответ и решение

Аналитическое решение:

Запишем условие в виде системы:

(
{  − 18+ n ∗(a− 24+ 15)+ 19 = 13
(
   14 + n∗ (b − 7 + 23)+ 16 = 16

(
{   n∗(a − 9) = 12

(   n∗(b+ 16) = − 14

Нам нужно найти наименьшее n, чтобы система выполнялась. И 12, и -14 делятся на 2, значит n = 2.

 

Программное решение:

for n in range(2, 100):
    fl = 0
    for a in range(-200, 200):
        for b in range(-200, 200):
            if (-18 + n * (-24 + a + 15) + 19) == 13 and (14 + n * (-7 + b + 23) + 16) == 16:
                fl = 1
                break
        if fl:
            break
    if fl:
        print(n)
        break

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 40#25985Максимум баллов за задание: 1

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b)  (где a  , b  — целые числа), перемещающую Чертёжника из точки с координатами (x,y)  в точку с координатами (x + a,y + b)  . Чертёжнику был дан для исполнения следующий алгоритм:

Начало

Сместиться на (4,6)

Повтори ...  раз

   Сместиться на (...,...)

   Сместиться на (4,− 6)

Конец повтори

Сместиться на (− 28,− 22)

Конец

В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «Повтори ...  раз»?

Показать ответ и решение

Аналитическое решение:

Запишем условие в виде системы:

(
{   4+ n ∗(a+ 4)− 28 = 0
(
    6+ n ∗(b− 6)− 22 = 0

(
{   n ∗(a+ 4) = 24

(   n ∗(b− 6) = 16

Нам нужно найти наибольшее n, чтобы система выполнялась. НОД(24, 16) = 8, значит, n = 8.

 

Программное решение:

ans = 0
for n in range(1, 200):
    flag = 0
    for a in range(-500, 500):
        for b in range(-500, 500):
            if (4 + n * (4 + a) - 28 == 0) and (6 + n * (b - 6) - 22 == 0):
                ans = n
                flag = 1
                break
        if flag == 1:
            break
print(ans)

Ответ: 8
Рулетка
Вы можете получить скидку в рулетке!