Una fracción como 5x-4/(x-2)(x+1) puede expresarse como la suma de 2 fracciones parciales de la forma A/(x-2), B/(x+1), donde A y B son enteros distintos de cero. Al sumarlas, las fracciones parciales son equivalentes a la original.
Dada una fracción de entrada como cadena (por ejemplo, 5x-4/(x-2)(x+1)), escribe una función que devuelva una lista de fracciones parciales en forma de cadena, de modo que A y B se reemplacen por los enteros distintos de cero adecuados para crear correctamente la fracción parcial correspondiente.
partial_fractions("5x-4/(x-2)(x+1)") -> ["2/(x-2)", "3/(x+1)"]
# 5x-4/(x-2)(x+1) = A/(x-2) + B/(x+1)
# 5x-4 = A(x+1) + B(x-2)
# Multiply through by denominator to remove fractions.
# Use substitution into x to set to zero one term at a time to find the
# constants A & B:
# Set x = 2, then B(x-2)=0 so A = 5(2)-4 / 3 = 2
# Set x = -1, then A(x+1)=0 so B = 5(-1)-4 / -3 = 3El numerador de entrada siempre será un único término. Puede ser un entero distinto de cero o una expresión lineal en x: ax+b, ax-b o b-ax, donde a y b son enteros distintos de cero, a es positivo en la forma b-ax y b es positivo en la forma ax-b. También puede ser un término en x como ax, donde a es un entero distinto de cero.
El denominador de entrada tendrá un mínimo de 2 y un máximo de 3 términos. Cada término está encerrado entre paréntesis, y cada término es una expresión lineal en x como se definió en el párrafo anterior. No habrá términos repetidos en el denominador, por lo que siempre podrás usar el método de sustitución de forma segura (consulta el ejemplo anterior).
Las fracciones parciales deben devolverse en el orden en que aparecen sus denominadores en el denominador de la fracción de entrada. Si una fracción parcial es negativa, debe comenzar con el carácter - (por ejemplo, el caso de prueba 1).
No uses espacios dentro de una expresión de fracción parcial. La fracción de entrada tampoco tendrá espacios; el denominador se indica mediante /.
Si no estás seguro de las matemáticas, los Recursos deberían ayudarte.