Сохраняйте дроби как факторыPython

Программы на Python
Anonymous
Сохраняйте дроби как факторы

Сообщение Anonymous »

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

Код: Выделить всё

16   1
--*-----*(a + b)
37 4*a*b
вместо более упрощенного

Код: Выделить всё

4(a + b)
--------
37*a*b
После множества экспериментов с перебором я ожидал этого:

Код: Выделить всё

from sympy import Mul, Rational, pretty
from sympy.abc import a, b

left = Rational(16, 37)
center = 1 / (4*a*b)
right = a + b
expr = Mul(left, center, right, evaluate=False)

print(pretty(expr))
чтобы создать первый пример, который я привел выше.
Вместо этого я получаю эту нечестивую мерзость:

Код: Выделить всё

     1
16*-----*(a + b)
4*a*b
----------------
37
Кажется, это должно быть очень легко сделать, но я просто что-то упускаю.
Я нашел кое-что, что работает так же, как и я. пишу это (приведено в моем собственном ответе ниже), но это похоже на хакерский обходной путь и не очень удовлетворительный... это заставляет меня думать, что это может быть ошибка, но я не уверен.

Подробнее здесь: https://stackoverflow.com/questions/659 ... as-factors

Вернуться в «Python»