randRangeNonZero( -9, 9 ) randRangeNonZero( -9, 9 ) randRangeNonZero( -9, 9 ) randRangeNonZero( -9, 9 ) randRangeNonZero( -9, 9 ) randRangeNonZero( -9, 9 ) getLCM( abs( A1 ), abs( A2 ) ) ( A_LCM / abs( A1 ) ) * ( A1 * A2 > 0 ? -1 : 1 ) A_LCM / abs( A2 ) max( abs( MULT_1 ), abs( MULT_2 ) ) getLCM( abs( B1 ), abs( B2 ) ) ( B_LCM / abs( B1 ) ) * ( B1 * B2 > 0 ? -1 : 1 ) B_LCM / abs( B2 ) max( abs( MULT_3 ), abs( MULT_4 ) ) X_MAX < Y_MAX ? true : false (C1*(B1*MULT_1+B2*MULT_2)-B1*(C1*MULT_1+C2*MULT_2))/getGCD((C1*(B1*MULT_1+B2*MULT_2)-B1*(C1*MULT_1+C2*MULT_2)),(A1*(B1*MULT_1+B2*MULT_2))) (A1*(B1*MULT_1+B2*MULT_2))/getGCD((C1*(B1*MULT_1+B2*MULT_2)-B1*(C1*MULT_1+C2*MULT_2)),(A1*(B1*MULT_1+B2*MULT_2))) ( C1 * MULT_1 + C2 * MULT_2 ) / getGCD( C1 * MULT_1 + C2 * MULT_2, B1 * MULT_1 + B2 * MULT_2 ) ( B1 * MULT_1 + B2 * MULT_2 ) / getGCD( C1 * MULT_1 + C2 * MULT_2, B1 * MULT_1 + B2 * MULT_2 )

Policz x i y metodą przeciwnych współczynników.

\begin{align*}expr(["+", ["*", A1, "x"], ["*", B1, "y"]]) &= C1 \\ expr(["+", ["*", A2, "x"], ["*", B2, "y"]]) &= C2\end{align*}

x = X_NUMER / X_DENOM

y = Y_NUMER / Y_DENOM

Możemy wyeliminować z równania ( XY_FLAG ? "x" : "y" ) kiedy współczynniki przy nich mają odwrotne znaki.

Przypominając sobie naszą wiedzę o najmniejszych wspólnych wielokrotnościach, pomnóż górne równanie przez MULT_1, a dolne przez MULT_2.

\begin{align*}expr(["+", ["*", A1*MULT_1, "x"], ["*", B1*MULT_1, "y"]]) &= C1*MULT_1\\ expr(["+", ["*", A2*MULT_2, "x"], ["*", B2*MULT_2, "y"]]) &= C2*MULT_2\end{align*}

Dodaj do siebie górne i dolne równanie.

expr(["*", B1*MULT_1+B2*MULT_2, "y"]) = C1*MULT_1+C2*MULT_2

Podziel obie strony B1*MULT_1+B2*MULT_2 i zredukuj (jeżeli będzie to możliwe).

y = fractionReduce( Y_NUMER, Y_DENOM )

Podstaw fractionReduce( Y_NUMER, Y_DENOM ) pod y w górnym równaniu.

expr(["+", ["*", A1, "x"], ["*", B1, " " + fractionReduce( Y_NUMER, Y_DENOM )]]) = C1

expr(["+", ["*", A1, "x"], fractionReduce( B1 * Y_NUMER, Y_DENOM )]) = C1

expr(["*", A1, "x"]) = fractionReduce( C1 * Y_DENOM - B1 * Y_NUMER, Y_DENOM )

x = fractionReduce(X_NUMER,X_DENOM)

x = fractionReduce(X_NUMER,X_DENOM), y = fractionReduce( Y_NUMER, Y_DENOM )

Przypominając sobie naszą wiedzę o najmniejszych wspólnych wielokrotnościach, pomnóż górne równanie przez MULT_3, a dolne przez MULT_4.

\begin{align*}expr(["+", ["*", A1*MULT_3, "x"], ["*", B1*MULT_3, "y"]]) &= C1*MULT_3\\ expr(["+", ["*", A2*MULT_4, "x"], ["*", B2*MULT_4, "y"]]) &= C2*MULT_4\end{align*}

Dodaj do siebie górne i dolne równanie.

expr(["*", A1*MULT_3+A2*MULT_4, "x"]) = C1*MULT_3+C2*MULT_4

Podziel obie strony przez A1*MULT_3+A2*MULT_4 i zredukuj (jeżeli będzie to możliwe).

x = fractionReduce( X_NUMER, X_DENOM )

Podstaw fractionReduce( X_NUMER, X_DENOM ) pod x w górnym równaniu.

expr(["+", ["*", A1, " " + fractionReduce( X_NUMER, X_DENOM )], ["*", B1, "y"]]) = C1

expr(["+", fractionReduce( A1 * X_NUMER, X_DENOM ), ["*", B1, "y"]]) = C1

expr(["*", B1, "y"]) = fractionReduce( C1 * X_DENOM - A1 * X_NUMER, X_DENOM )

y = fractionReduce( Y_NUMER, Y_DENOM )

x = fractionReduce( X_NUMER, X_DENOM ), y = fractionReduce( Y_NUMER, Y_DENOM )