Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 10.04.2015
Сообщений: 230

Исполнитель Чертёжник

29.02.2024, 17:39. Показов 2521. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, друзья! Написал программу, которая должна решать задачу, но она ничего не выводит. Ответ задачи 4. Не могу понять, где ошибься, подскажите, пожалуйста?
for n in range(2, 100): # Перебираем значения n от 2 до 100
for a in range(2, 100):
for b in range(2, 100):
x= n *(a + 15) + 32
y = n *(b -9) + 20
if x==0 and y==0:
print(n)

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a, b), где a, b  — целые числа. Эта команда перемещает Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Например, если Чертёжник находится в точке с координатами (4, 2), то команда сместиться на (2, −3) переместит Чертёжника в точку (6, −1).

Цикл

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

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

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

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

 

Чертёжнику был дан для исполнения следующий алгоритм (буквами n, a, b обозначены неизвестные числа, n > 1):

 

НАЧАЛО

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

ПОВТОРИ n РАЗ

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

сместиться на (15, −9)

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

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

КОНЕЦ

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

Добавлено через 3 минуты
Python
1
2
3
4
5
6
7
for n in range(2, 100):  # Перебираем значения n от 2 до 100
    for a in range(2, 100): 
        for b in range(2, 100):
            x= n *(a + 15) + 32
            y = n *(b -9) + 20
            if x==0 and y==0:
                print(n)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.02.2024, 17:39
Ответы с готовыми решениями:

Исполнитель Редактор
Помогите. Нужен просто ответ к задаче: Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две...

Задача исполнитель
Здравствуйте, помогите, пожалуйста, решить задачу. Что-то вообще нет идей. Исполнитель может выполнять преобразования над числами,...

Исполнитель Нолик
Исполнитель Нолик преобразует число, записанное на экране в троичной системе счисления. У исполнителя есть две команды, которым присвоены...

5
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 13
29.02.2024, 17:57
Цитата Сообщение от eugeny1984 Посмотреть сообщение
Ответ задачи 4
Допустим a=2, тогда
x = 4 * (2 + 15) + 32 = 100
При дальнейшем движении по циклу значение a будет увеличиваться, а поскольку в этом выражении x= n *(a + 15) + 32 нет ни вычитания, ни деления, а значения n и a целые положительные, то и x будет увеличиваться и никогда не будет равен 0.

Цитата Сообщение от eugeny1984 Посмотреть сообщение
но она ничего не выводит
Все правильно
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
29.02.2024, 18:01
Цитата Сообщение от eugeny1984 Посмотреть сообщение
ничего не выводит
потому что x и y никогда не будут равны 0
запусти и посмотри результат
Python
1
2
3
4
5
6
for n in range(2, 100):  # Перебираем значения n от 2 до 100
    for a in range(2, 100): 
        for b in range(2, 100):
            x= n *(a + 15) + 32
            y = n *(b -9) + 20
            print(x,y)
если не надоест ждать.
Цитата Сообщение от eugeny1984 Посмотреть сообщение
где ошибься
в логике

Добавлено через 2 минуты
Цитата Сообщение от eugeny1984 Посмотреть сообщение
где a, b  — целые числа
откуда они берутся?
Цитата Сообщение от eugeny1984 Посмотреть сообщение
сместиться на (30, 30)
где это в твоем коде?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
01.03.2024, 02:03
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for n in range(32, 1-1, -1):
    if 32%n == 0 and 20%n == 0:
        a = -32//n - 15
        b = -20//n + 9
        break
print(f'n = {n}, a = {a}, b = {b}')
 
# Проверка.
p = complex(0)
p += complex(30,30)
for n in range(n):
    p += complex(a,b)
    p += complex(15,-9)
p += complex(2,-10)
print(p)
# n = 4, a = -23, b = 4
# 0j
0
3 / 3 / 0
Регистрация: 10.04.2015
Сообщений: 230
01.03.2024, 09:17  [ТС]
Semen-Semenich, +32 =30+2 и 20=30-10 ( это начальная и конечная координаты из условия. Но в условии же не сказано, что надо делить.

Добавлено через 12 минут
idealist, спасибо, я решил. диапазон а и b взял слишком маленький, надо было минусовые значения рассмотреть
Python
1
2
3
4
5
6
7
for n in range(2, 100):  # Перебираем значения n от 2 до 100
    for a in range(-30, 100): 
        for b in range(-30, 100):
            x= 30 + n *(a + 15) + 2
            y = 30 + n *(b -9) -10
            if x==0 and y==0:
                print(n)
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
01.03.2024, 11:39
Цитата Сообщение от eugeny1984 Посмотреть сообщение
for n in range(2, 100):
А почему вы перебираете от меньших к большим? Нам же надо наибольшее значение найти.
Цитата Сообщение от eugeny1984 Посмотреть сообщение
диапазон а и b взял слишком маленький
a и b однозначно вычисляются из n.
А n вычисляется из условия, что оно нацело делит 32 и 20.

eugeny1984, по условию задачи
Цитата Сообщение от eugeny1984 Посмотреть сообщение
x= n *(a + 15) + 32
y = n *(b -9) + 20
где x = 0 и y = 0, т.е.
n(a+15) = -32
n(b-9) = -20
откуда
a = -32/n - 15***************(1)
b = -20/n + 9***************(2)
откуда n - это наибольшее число, делящее нацело 32 и 20, т.е. 4.
Подставляя это значение в (1) и (2), вычисляем a и b.

Еще решение:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for n in range(32, 1-1, -1):
    a = -32/n - 15
    b = -20/n + 9
    if a.is_integer() and b.is_integer():
        break
print(f'n = {n}, a = {a}, b = {b}')
 
# Проверка.
p = complex(0)
p += complex(30,30)
for n in range(n):
    p += complex(a,b)
    p += complex(15,-9)
p += complex(2,-10)
print(p)
# n = 4, a = -23, b = 4
# 0j
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2024, 11:39
Помогаю со студенческими работами здесь

Исполнитель калькулятор
У исполнителя Калькулятор1 две команды, которым присвоены номера: 1. прибавь 1, 2. умножь на 5. Выполняя первую из них,...

Исполнитель Робот
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt ...

Исполнитель калькулятор
Помогите пожалуйста. Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера: 1....

Исполнитель Редактор
Дана программа для Редактора: НАЧАЛО ПОКА нашлось (12) заменить (12, 4) КОНЕЦ ПОКА КОНЕЦ Исходная строка содержит...

Исполнитель Калькулятор
Исполнитель Калькулятор преобразует число на экране. У исполнителя есть три команды, которым присвоены номера: 1)+1 2)+4 3)*2 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru