Напишите функции x(a)
, y(a)
причем z(a)
такие, что для любых рациональных a
все функции возвращают рациональные числа и x(a)*y(a)*z(a)*(x(a) + y(a) + z(a)) == a
. Вы можете предположить, что ≥ 0.
Вам не нужно использовать рациональные типы или операции в вашей программе, если ваша программа математически обоснована. Например, если вы используете квадратный корень в своем ответе, вы должны показать, что его аргумент всегда является квадратом рационального числа.
Вы можете написать три именованные функции x, y, z или написать три программы вместо них, если функции громоздки или не существуют для вашего языка. В качестве альтернативы вы также можете написать одну программу / функцию, которая возвращает три числа x, y, z. Наконец, если вы предпочитаете, вы можете вводить / выводить рациональные числа в виде пары числитель / знаменатель. Ваша оценка - это общий размер трех функций или трех программ в байтах. Наименьший счет выигрывает.
Грубое принуждение не допускается. Для любого a = p / q, где p, q ≤ 1000, ваша программа должна быть запущена менее чем за 10 секунд.
Пример (это не означает, что ваша декомпозиция должна давать эти числа):
x = 9408/43615
y = 12675/37576
z = 1342/390
x*y*z*(x+y+z) = 1
a
?Ответы:
CJam (59 байт)
Это анонимный блок (функция), который принимает целое или двойное число в стеке и создает массив с тремя двойными числами. У него есть два случая для обработки всех неотрицательных входных данных, так как только в одном случае он будет разбит на один
0.25
или4
. Это все еще ломается для входов-12
и-1.3333333333333333
, но спецификация позволяет это ...Онлайн демо выполняет его , а затем складывает значения, печатает все четыре, и умножает их , чтобы показать , что он получает исходное значение (ошибка округления по модулю).
Математическое обоснование
Elkies дает четыре семейства наборов решений. Эйлера:
Один, связанный с Эйлера:
Проще:
И один, связанный с этим:
источник
Аксиома, 191 байт
Это перенос формулы отчета Питера Тейлора на этой странице с некоторым кодом сделает знаменатели не равными 0. Один тест
источник