randFromArray(['multiply', 'divide']) randFromArray([[0, 1], [1, 0]]) randVar() randVar() randRangeNonZero(-10, 10) randRangeNonZero(-10, 10) randRangeNonZero(-10, 10) randRangeWeightedExclude(-10, 10, 1, 0.4, [0]) function(){if(rand(2))if(rand(2))var e=new Term(randRangeWeightedExclude(-10,10,1,.5,[0]),X),r=new Term(randRangeWeightedExclude(-10,10,1,.4,[0]));else var e=new Term(randRangeWeightedExclude(-10,10,1,.4,[0])),r=new Term(randRangeWeightedExclude(-10,10,1,.5,[0]),X);else var e=new Term(randRangeWeightedExclude(-10,10,1,.4,[0])),r=new Term(randRangeWeightedExclude(-10,10,1,.4,[0]));return[e,r]}() new RationalExpression([FACTORS[0].multiply(FACTORS[1])]) new RationalExpression([[1, X], A]) new RationalExpression([[1, X], B]) new RationalExpression([[1, X], C]) TERM_B.multiply(TERM_C)
[TERM_A.multiply(FACTOR1), TERM_D] [TERM_B.multiply(FACTORS[0]), TERM_C.multiply(FACTORS[1])] [NUMERATORS[0].toString(), '(' + TERM_B.toString() + ')(' + TERM_C.toString() + ')'] [DENOMINATORS[0].toString(), DENOMINATORS[1].toString()] [NUMERATORS[0].toStringFactored(), NUMER_STRINGS[1]] [DENOMINATORS[0].toStringFactored(), DENOMINATORS[1].toStringFactored()] [[FACTOR1], ORDER[0] ? [TERM_B, TERM_C, TERM_A] : [TERM_A, TERM_B, TERM_C]] [[FACTORS[0], FACTORS[1]], ORDER[0] ? [TERM_C, TERM_B]: [TERM_B, TERM_C]] TERM_C [ORDER[0] ? [0, 1] : [1, 2], ORDER] FACTOR_PRODUCT.isNegative() ? -FACTOR_PRODUCT.getGCD(FACTOR1) : FACTOR_PRODUCT.getGCD(FACTOR1) NUMERATORS[0].divide(COMMON_FACTOR) FACTOR_PRODUCT.divide(COMMON_FACTOR) CANCEL.terms[1].coefficient !== B ? -CANCEL.terms[1] : 0
[TERM_B.multiply(FACTORS[0]), TERM_C.multiply(FACTORS[1])] [TERM_A.multiply(FACTOR1), TERM_D] [NUMERATORS[0].toString(), NUMERATORS[1].toString()] [DENOMINATORS[0].toString(), '(' + TERM_B.toString() + ')(' + TERM_C.toString() + ')'] [NUMERATORS[0].toStringFactored(), NUMERATORS[1].toStringFactored()] [DENOMINATORS[0].toStringFactored(), DENOM_STRINGS[1]] [[FACTORS[0], FACTORS[1]], ORDER[0] ? [TERM_C, TERM_B]: [TERM_B, TERM_C]] [[FACTOR1], ORDER[0] ? [TERM_B, TERM_C, TERM_A] : [TERM_A, TERM_B, TERM_C]] TERM_C [ORDER, ORDER[0] ? [0, 1] : [1, 2]] FACTOR1 < 0 ? -FACTOR_PRODUCT.getGCD(FACTOR1) : FACTOR_PRODUCT.getGCD(FACTOR1) FACTOR_PRODUCT.divide(COMMON_FACTOR) DENOMINATORS[0].divide(COMMON_FACTOR) CANCEL.terms[1].coefficient !== B ? -CANCEL.terms[1] : 0
[TERM_A.multiply(FACTOR1), TERM_D] [TERM_B.multiply(FACTORS[0]), TERM_A.multiply(FACTORS[1])] [NUMERATORS[0].toString(), '(' + TERM_B.toString() + ')(' + TERM_C.toString() + ')'] [DENOMINATORS[0].toString(), DENOMINATORS[1].toString()] [NUMERATORS[0].toStringFactored(), NUMER_STRINGS[1]] [DENOMINATORS[0].toStringFactored(), DENOMINATORS[1].toStringFactored()] [[FACTOR1], ORDER[0] ? [TERM_B, TERM_C, TERM_A] : [TERM_A, TERM_B, TERM_C]] [[FACTORS[0], FACTORS[1]], ORDER[0] ? [TERM_A, TERM_B] : [TERM_B, TERM_A]] TERM_A [ORDER[0] ? [0, 2] : [0, 1], ORDER] FACTOR_PRODUCT.isNegative() ? -FACTOR_PRODUCT.getGCD(FACTOR1) : FACTOR_PRODUCT.getGCD(FACTOR1) TERM_C.multiply(FACTOR1 / COMMON_FACTOR) FACTOR_PRODUCT.divide(COMMON_FACTOR) CANCEL.terms[1].coefficient !== B ? -CANCEL.terms[1] : 0
[TERM_B.multiply(FACTORS[0]), TERM_A.multiply(FACTORS[1])] [TERM_A.multiply(FACTOR1), TERM_D] [NUMERATORS[0].toString(), NUMERATORS[1].toString()] [DENOMINATORS[0].toString(), '(' + TERM_B.toString() + ')(' + TERM_C.toString() + ')'] [NUMERATORS[0].toStringFactored(), NUMERATORS[1].toStringFactored()] [DENOMINATORS[0].toStringFactored(), DENOM_STRINGS[1]] [[FACTORS[0], FACTORS[1]], ORDER[0] ? [TERM_A, TERM_B] : [TERM_B, TERM_A]] [[FACTOR1], ORDER[0] ? [TERM_B, TERM_C, TERM_A] : [TERM_A, TERM_B, TERM_C]] TERM_A [ORDER, ORDER[0] ? [0, 2] : [1, 0]] FACTOR1 < 0 ? -FACTOR_PRODUCT.getGCD(FACTOR1) : FACTOR_PRODUCT.getGCD(FACTOR1) FACTOR_PRODUCT.divide(COMMON_FACTOR) TERM_C.multiply(FACTOR1 / COMMON_FACTOR) CANCEL.terms[1].coefficient !== B ? -CANCEL.terms[1] : 0
NUMERSOL.regex(true) DENOMSOL.regex(true) -B SOL
NUMERSOL.regex(true) DENOMSOL.regex(true) SOL -B
NUMERSOL.multiply(-1).regex(true) DENOMSOL.multiply(-1).regex(true) -B SOL
NUMERSOL.multiply(-1).regex(true) DENOMSOL.multiply(-1).regex(true) SOL -B
Y = a
a
X \neq a
X \neq a

Simplifica la siguiente expresión y establece las condiciones bajo las cuales es válida la simplificación. Puedes asumir que X \neq 0.

Y = \dfrac{NUMERATORS[ORDER[0]]}{DENOMINATORS[ORDER[0]]} \times \dfrac{NUMERATORS[ORDER[1]]}{DENOMINATORS[ORDER[1]]} \dfrac{NUMERATORS[ORDER[0]]}{DENOMINATORS[ORDER[0]]} \div \dfrac{DENOMINATORS[ORDER[1]]}{NUMERATORS[ORDER[1]]}

Dividir entre una expresión es lo mismo que multiplicar entre su inverso.

Y = \dfrac{NUMERATORS[ORDER[0]]}{DENOMINATORS[ORDER[0]]} \times \dfrac{NUMERATORS[ORDER[1]]}{DENOMINATORS[ORDER[1]]}

Primero factoriza la cuadrática.

Y = \dfrac{NUMER_STRINGS[ORDER[0]]}{DENOM_STRINGS[ORDER[0]]} \times \dfrac{NUMER_STRINGS[ORDER[1]]}{DENOM_STRINGS[ORDER[1]]}

Después factoriza otros términos.

Y = \dfrac{NUMER_STRINGS2[ORDER[0]]}{DENOM_STRINGS2[ORDER[0]]} \times \dfrac{NUMER_STRINGS2[ORDER[1]]}{DENOM_STRINGS2[ORDER[1]]}

Multiplica los dos numeradores y multiplica los dos denominadores.

Y = \dfrac{ (NUMER_STRINGS2[ORDER[0]]) NUMER_STRINGS2[ORDER[0]] \times (NUMER_STRINGS2[ORDER[1]]) NUMER_STRINGS2[ORDER[1]] } { (DENOM_STRINGS2[ORDER[0]]) DENOM_STRINGS2[ORDER[0]] \times (DENOM_STRINGS2[ORDER[1]]) DENOM_STRINGS2[ORDER[1]] }

Y = \dfrac{ getProduct(NUMER_PRODUCT[0], NUMER_PRODUCT[1])}{ getProduct(DENOM_PRODUCT[0], DENOM_PRODUCT[1])}

Observa que (CANCEL) y (TERM_B) aparece (TERM_B) aparece dos veces en el numerador y denominador entonces los podemos cancelar.

Y = \dfrac{ getProduct(NUMER_PRODUCT[0], NUMER_PRODUCT[1], CANCEL_ORDER[0].slice(0, 1))}{ getProduct(DENOM_PRODUCT[0], DENOM_PRODUCT[1], CANCEL_ORDER[1].slice(0, 1))}

Estamos dividiendo entre TERM_B, así que TERM_B \neq 0.
Por lo tanto, X \neq -B.

Y = \dfrac{ getProduct(NUMER_PRODUCT[0], NUMER_PRODUCT[1], CANCEL_ORDER[0])}{ getProduct(DENOM_PRODUCT[0], DENOM_PRODUCT[1], CANCEL_ORDER[1])}

Estamos dividiendo entre CANCEL, así que CANCEL \neq 0.
Por lo tanto, X \neq -CANCEL.terms[1].

Y = \dfrac{NUMERSOL.multiply(COMMON_FACTOR).toStringFactored()}{DENOMSOL.multiply(COMMON_FACTOR).toStringFactored()}

Y = NUMERSOL.toStringFactored() NUMERSOL.multiply(-1).toStringFactored() \dfrac{NUMERSOL.toStringFactored()}{DENOMSOL.toStringFactored()} ; \space X \neq -B ; \space X \neq -CANCEL.terms[1]