Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2023, 20:03   #1
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию Даны х,y,z. x=a*b, y=b*c, z=a*c Python

Доброго времени суток. Подскажите, как решать такую задачу. Не решение в Питоне, а логику, по какому принципу решать ее.
Даны три целых числа x, y,z. Вам нужно найти три целых положительных числа a, b, c, таких, что выполняются x=ab, y=bc, z=ac. Гарантируется, что ответ существует.
входные:
20 52 65
выходные:
5 4 13
gromdel вне форума Ответить с цитированием
Старый 25.01.2023, 20:23   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Это система из 3-х уравнений с 3-я неизвестными. Выражаете одну переменную (например а) через одно уравнение и получаете уравнение вида a = x/b. Затем подставляете значение a в уравнение, где она присутствует в виде двух неизвестных: zb=xc. У вас остается еще два уравнение от двух одинаковых неизвестных. Дальше сами справитесь?
macomics вне форума Ответить с цитированием
Старый 26.01.2023, 18:32   #3
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Это система из 3-х уравнений с 3-я неизвестными. Выражаете одну переменную (например а) через одно уравнение и получаете уравнение вида a = x/b. Затем подставляете значение a в уравнение, где она присутствует в виде двух неизвестных: zb=xc. У вас остается еще два уравнение от двух одинаковых неизвестных. Дальше сами справитесь?
Спасибо, буду думать. Может додумаю
gromdel вне форума Ответить с цитированием
Старый 26.01.2023, 18:39   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

zb=xc и y=bc
выражаем из второго уравнения, скажем, b и получаем b = y/c
подставляем в первое: zy/с=xc => zy=xcc => zy/x=cc => c = sqrt(zy/x)
подставляем значение c во второе уравнение b = y/sqrt(zy/x)
а теперь подставляем значение b в самое первое из трех уравнений: a = x/(y/sqrt(zy/x))
но еще надо учесть, что c может быть как отрицательный так и положительный т.к. -2*-2 = 2*2 = 4 => sqrt(4) = -2;2

PS пример с -2 и 2 это не значение с. Я просто для наглядности взял случайное число. sqrt - квадратный корень

Последний раз редактировалось macomics; 26.01.2023 в 18:43.
macomics вне форума Ответить с цитированием
Старый 26.01.2023, 19:30   #5
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
zb=xc и y=bc
выражаем из второго уравнения, скажем, b и получаем b = y/c
подставляем в первое: zy/с=xc => zy=xcc => zy/x=cc => c = sqrt(zy/x)
подставляем значение c во второе уравнение b = y/sqrt(zy/x)
а теперь подставляем значение b в самое первое из трех уравнений: a = x/(y/sqrt(zy/x))
но еще надо учесть, что c может быть как отрицательный так и положительный т.к. -2*-2 = 2*2 = 4 => sqrt(4) = -2;2

PS пример с -2 и 2 это не значение с. Я просто для наглядности взял случайное число. sqrt - квадратный корень
Благодарю, не ожидал такого подвоха в математике)) Теперь уже в питон перенесу.
ПРосто увидел задачку, и заинтересовало, как такие решаются
gromdel вне форума Ответить с цитированием
Старый 26.01.2023, 19:42   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
from math import sqrt
x,y,z = map(int, input().strip().split(' '))
c = sqrt(z*y/x)
b = y/c
a = x/b
x1 = a*b
y1 = b*c
z1 = a*c
print(a,b,c)
print(x1,y1,z1)
c = -c
b = y/c
a = x/b
x2 = a*b
y2 = b*c
z2 = a*c
print(a,b,c)
print(x2,y2,z2)
Код:
$ python3 testabc.py
20 52 65
5.0 4.0 13.0
20.0 52.0 65.0
-5.0 -4.0 -13.0
20.0 52.0 65.0

Последний раз редактировалось macomics; 26.01.2023 в 19:47.
macomics вне форума Ответить с цитированием
Старый 26.01.2023, 21:42   #7
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Цитата:
Сообщение от gromdel Посмотреть сообщение
нужно найти три целых положительных числа a, b, c
Цитата:
Сообщение от macomics Посмотреть сообщение
надо учесть, что c может быть как отрицательный так и положительный
Что-то тут не так
FPaul вне форума Ответить с цитированием
Старый 26.01.2023, 21:48   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Значит можно оставить только положительные.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Python - как установить Easy-Machine-Learning-Object-Detection при уже установленном Python 3.9 Krasi Общие вопросы по программированию, компьютерный форум 4 23.12.2021 15:49
[Python] Нужно решить в среду вечером 5 -6 заданий для начинающих на языку Python. Пример заданий смогу выслать. Задания на английском языке. foxylen Фриланс 2 17.03.2019 12:30
Начальный уровень Python. Функции - Python YYYUUU Python 5 09.06.2017 12:09
VBA Даны x1, x2, …, x10; l1, l2, …, l10. isvyu Помощь студентам 3 18.12.2016 18:45
VBA. Даны a, b, k, mv isvyu Помощь студентам 1 18.12.2016 18:31