randVar() randVar() randRangeNonZero( -5, 5 ) randRangeNonZero( -5, 5 ) randRangeNonZero( -5, 5 ) randRangeNonZero( -5, 5 ) randRangeNonZero( -5, 5 ) [ "^", [ "*", [ "^", BASE1, EXPDEN1 ], [ "^", BASE2, EXPDEN2 ] ], EXPDEN3 ] ["^", BASE1, EXPDEN1] ["^", BASE2, EXPDEN2] expr(["^", BASE1, EXPDEN1 * EXPDEN3]) expr(["^", BASE2, EXPDEN2 * EXPDEN3])
randRangeNonZero( -5, 5 ) ["^", ["*", ["^", BASE1, EXPNUM1], ["^", BASE2, EXPNUM2]], EXPNUM3] ["^", BASE1, EXPNUM1] ["^", BASE2, EXPNUM2] expr(["^", BASE1, EXPNUM1 * EXPNUM3]) expr(["^", BASE2, EXPNUM2 * EXPNUM3]) EXPNUM1 * EXPNUM3 - EXPDEN1 * EXPDEN3 EXPNUM2 * EXPNUM3 - EXPDEN2 * EXPDEN3 [ "*", [ "^", BASE1, EXP1 ], [ "^", BASE2, EXP2 ] ]

Rescrie \large{\dfrac{expr(NUM)}{expr(DEN)}} sub forma \large{BASE1^nBASE2^m}.

Putem presupune că BASE1\neq 0, BASE2\neq 0.

BASE1^EXP1 * BASE2^EXP2
BASE1^EXP1 * BASE2^EXP2

Putem începe prin a simplifica numărătorul si numitorul separat.

Putem folosi proprietatea ridicarii unei puteri la altă putere la numărător:

(\blue{expr(NUM1)}\green{expr(NUM2)})^{EXPNUM3} = \blue{expr(['^', NUM1, EXPNUM3])}\green{expr(['^', NUM2, EXPNUM3])}

\blue{expr(['^', NUM1, EXPNUM3]) = NUMHINT1}
\green{expr(['^', NUM2, EXPNUM3]) = NUMHINT2}

Așadar, (\blue{expr(NUM1)}\green{expr(NUM2)})^{EXPNUM3} = \blue{NUMHINT1}\green{NUMHINT2}.

Putem folosi proprietatea ridicarii unei puteri la altă putere la numitor:

(\blue{expr(DEN1)}\green{expr(DEN2)})^{EXPDEN3} = \blue{expr(["^", DEN1, EXPDEN3])}\green{expr(["^", DEN2, EXPDEN3])}

\blue{expr(['^', DEN1, EXPDEN3]) = DENHINT1}
\green{expr(['^', DEN2, EXPDEN3]) = DENHINT2}

Așadar: (\blue{expr(DEN1)}\green{expr(DEN2)})^{EXPDEN3} = \blue{DENHINT1}\green{DENHINT2}.

Rezultă: \dfrac{ (\blue{expr(NUM1)}\green{expr(NUM2)})^{EXPNUM3} \blue{expr(NUM1)}\green{expr(NUM2)} }{ (\blue{expr(DEN1)}\green{expr(DEN2)})^{EXPDEN3} \blue{expr(DEN1)}\green{expr(DEN2)} } = \dfrac{\blue{NUMHINT1}\green{NUMHINT2}}{ \blue{DENHINT1}\green{DENHINT2}}.

Acum putem împărții fracția în două, una pentru fiecare variabilă:

\dfrac{\blue{NUMHINT1}\green{NUMHINT2}}{\blue{DENHINT1}\green{DENHINT2}} = \blue{\dfrac{NUMHINT1}{DENHINT1}} \cdot \green{\dfrac{NUMHINT2}{DENHINT2}} = \blue{BASE1^{EXPNUM1 * EXPNUM3 - negParens(EXPDEN1 * EXPDEN3)}} \cdot \green{BASE2^{EXPNUM2 * EXPNUM3 - negParens(EXPDEN2 * EXPDEN3)}} = expr(ANS)

0 [ "^", [ "^", BASE1, EXPNUM1 ], EXPNUM3 ] ["^", BASE1, EXPNUM1] expr(["^", BASE1, EXPNUM1 * EXPNUM3]) [ "^", BASE1, EXPNUM1 * EXPNUM3 ] EXPNUM1 * EXPNUM3 - EXPDEN1 * EXPDEN3 EXPNUM2 * EXPNUM3 - EXPDEN2 * EXPDEN3 [ "*", [ "^", BASE1, EXP1 ], [ "^", BASE2, EXP2 ] ]

Rescrie \large{\dfrac{expr(NUM)}{expr(DEN)}} sub forma \large{BASE1^nBASE2^m}.

Putem presupune că BASE1\neq 0, BASE2\neq 0.

BASE1^EXP1 * BASE2^EXP2

Putem începe prin a simplifica numărătorul si numitorul separat.

Putem folosi proprietatea ridicarii unei puteri la altă putere la numărător:

\blue{expr(['^', NUM1, EXPNUM3])} = \blue{NUMHINT1}

Putem folosi proprietatea ridicarii unei puteri la altă putere la numitor:

(\blue{expr(DEN1)}\green{expr(DEN2)})^{EXPDEN3} = \blue{expr(["^", DEN1, EXPDEN3])}\green{expr(["^", DEN2, EXPDEN3])}

\blue{expr(['^', DEN1, EXPDEN3]) = DENHINT1}
\green{expr(['^', DEN2, EXPDEN3]) = DENHINT2}

So, (\blue{expr(DEN1)}\green{expr(DEN2)})^{EXPDEN3} = \blue{DENHINT1}\green{DENHINT2}.

Rezultă: \dfrac{ (\blue{expr(NUM1)})^{EXPNUM3} \blue{expr(NUM1)} }{ (\blue{expr(DEN1)}\green{expr(DEN2)})^{EXPDEN3} \blue{expr(DEN1)}\green{expr(DEN2)} } = \dfrac{\blue{NUMHINT1}}{ \blue{DENHINT1}\green{DENHINT2}}.

Acum putem împărții fracția în două, una pentru fiecare variabilă:

\dfrac{\blue{NUMHINT1}}{\blue{DENHINT1}\green{DENHINT2}} = \blue{\dfrac{NUMHINT1}{DENHINT1}} \cdot \green{\dfrac{1}{DENHINT2}} = \blue{BASE1^{EXPNUM1 * EXPNUM3 - negParens(EXPDEN1 * EXPDEN3)}} \cdot \green{BASE2^{ - negParens(EXPDEN2 * EXPDEN3)}} = expr(ANS)