randVar() randRangeNonZero(-1, 1) * randRange(1, randRange(1, 12)) randRangeNonZero(-1, 1) * randRange(1, randRange(1, 12)) randRangeNonZero(-1, 1) * randRange(1, randRange(1, 20)) randRangeNonZero(-1, 1) * randRange(1, randRange(1, 12)) randRangeNonZero(-1, 1) * randRange(1, randRange(1, 10)) randRangeNonZero(-1, 1) * randRange(1, randRange(1, 10)) "(?:"+(0>A?"[-\\u2212]\\s*":"")+abs(A)+(1===A?"|":"")+(-1===A?"|[-\\u2212]\\s*":"")+")\\s*"+X "(?:"+(0>F*B?"[-\\u2212]\\s*":"")+abs(F*B)+(F*B===1?"|":"")+(F*B===-1?"|[-\\u2212]\\s*":"")+")\\s*"+X "(?:"+(0>A+B?"[-\\u2212]\\s*":"")+abs(A+B)+(A+B===1?"|":"")+(A+B===-1?"|[-\\u2212]\\s*":"")+")\\s*"+X "(?:"+(0>A+F*B?"[-\\u2212]\\s*":"")+abs(A+F*B)+(A+F*B===1?"|":"")+(A+F*B===-1?"|[-\\u2212]\\s*":"")+")\\s*"+X "(?:"+(0>E*A+F*B?"[-\\u2212]\\s*":"")+abs(E*A+F*B)+(E*A+F*B===1?"|":"")+(E*A+F*B===-1?"|[-\\u2212]\\s*":"")+")\\s*"+X C === 0 ? "" : ((C < 0 ? "[-\\u2212]\\s*" : "") + abs(C)) (C + D) === 0 ? "" : ((C + D) < 0 ? "[-\\u2212]\\s*" : "") + abs(C + D) (F * D) === 0 ? "" : ((F * D) < 0 ? "[-\\u2212]\\s*" : "") + abs(F * D) (C + F * D) === 0 ? "" : ((C + F * D) < 0 ? "[-\\u2212]\\s*" : "") + abs(C + F * D) (E * C + F * D) === 0 ? "" : ((E * C + F * D) < 0 ? "[-\\u2212]\\s*" : "") + abs(E * C + F * D)

Simplifica la siguiente expresión:

^\s*SOL\s*$
una expresión como -2x + 4
[TERM_AX_FBX+(F*D>0?"\\s*\\+\\s*":"\\s*")+TERM_FD,TERM_FD+(A+F*B>0?"\\s*\\+\\s*":"\\s*")+TERM_AX_FBX]

\large{expr(["+", ["*", A, X], ["*", F, ["+", ["*", B, X], D]]])}

El signo de menos delante de los paréntesis significa que multiplicamos cada término dentro del paréntesis por \purple{F}:

Distribuye el \purple{F} en el paréntesis:

\qquad expr(["*", A, X]) F < 0 ? "" : "+" \purple{F(}\gray{expr(["+", ["*", B, X], D])}\purple{)}

\qquad expr(["*", A, X]) (F * B) < 0 ? "" : "+" \purple{expr(["+", ["*", F * B, X], F * D])}

Combina los términos de X:

\qquad\pink{expr(["*", A, X]) + expr(["*", F * B, X])} + F * D

\qquad\pink{expr(["*", A + (F * B), X])} + F * D

La expresión simplificada es expr(["*", A + (F * B), X])

La expresión simplificada es expr(["+", ["*", A + (F * B), X], F * D])

[TERM_FBX+(C+F*D>0?"\\s*\\+\\s*":"\\s*")+TERM_C_FD,TERM_C_FD+(F*B>0?"\\s*\\+\\s*":"\\s*")+TERM_FBX]

\large{expr(["+", C, ["*", F, ["+", ["*", B, X], D]]])}

El signo de menos delante de los paréntesis significa que multiplicamos cada término dentro del paréntesis por \purple{F}:

Distribuye el \purple{F} en el paréntesis:

\qquad C F < 0 ? "" : "+" \purple{F(}\gray{expr(["+", ["*", B, X], D])}\purple{)}

\qquad C (F * B) < 0 ? "" : "+" \purple{expr(["+", ["*", F * B, X], F * D])}

Reescribe la expresión para agrupar los términos numéricos:

\qquad expr(["*", F * B, X]) C < 0 ? "" : "+" \blue{C + F * D}

Combina los términos numéricos:

\qquad expr(["*", F * B, X]) (C + F * D) < 0 ? "" : "+" \blue{C + F * D}

La expresión simplificada es expr(["*", F * B, X])

La expresión simplificada es expr(["+", ["*", F * B, X], C + F * D])

[TERM_EAX_FBX+(E*C+F*D>0?"\\s*\\+\\s*":"\\s*")+TERM_EC_FD,TERM_EC_FD+(E*A+F*B>0?"\\s*\\+\\s*":"\\s*")+TERM_EAX_FBX]

\large{expr(["+", ["*", E, ["+", C, ["*", A, X]]], ["*", F, ["+", ["*", B, X], D]]])}

El signo de menos delante de los paréntesis significa que multiplicamos cada término dentro del primer paréntesis por \purple{E}:

Distribuye la \purple{E} en el primer conjunto de paréntesis:

\qquad \purple{E(}\gray{expr(["+", C, ["*", A, X]])}\purple{)} + expr(["*", F, ["+", ["*", B, X], D]])

\qquad \purple{expr(["+", E * C, ["*", E * A, X]])} + expr(["*", F, ["+", ["*", B, X], D]])

El signo de menos delante de los paréntesis significa que multiplicamos cada término dentro del paréntesis por \purple{F}:

Distribuye el \purple{F} en el paréntesis:

\qquad expr(["+", E * C, ["*", E * A, X]]) F < 0 ? "" : "+" \purple{F(}\gray{expr(["+", ["*", B, X], D])}\purple{)}

\qquad expr(["+", E * C, ["*", E * A, X]]) (F * B) < 0 ? "" : "+" \purple{expr(["+", ["*", F * B, X], F * D])}

Reescribe la expresión para agrupar los términos de \pink{X} y los términos numéricos:

\qquad\pink{expr(["*", E * A, X]) + expr(["*", F * B, X])} (E * C) < 0 ? "" : "+" \blue{E * C + F * D}

Combina los términos de \pink{X}:

\qquad\pink{expr(["*", E * A + F * B, X])} (E * C) < 0 ? "" : "+" \blue{E * C + F * D}

Combina los términos numéricos:

\qquad\pink{expr(["*", E * A + F * B, X])} (E * C + F * D) < 0 ? "" : "+" \blue{E * C + F * D}

La expresión simplificada es expr(["*", E * A + F * B, X])

La expresión simplificada es expr(["+", ["*", E * A + F * B, X], E * C + F * D])

\large{expr(["+", ["*", E, ["+", ["*", A, X], C]], ["*", F, ["+", D, ["*", B, X]]]])}

El signo de menos delante de los paréntesis significa que multiplicamos cada término dentro del primer paréntesis por \purple{E}:

Distribuye la \purple{E} en el primer conjunto de paréntesis:

\qquad \purple{E(}\gray{expr(["+", ["*", A, X], C])}\purple{)} + expr(["*", F, ["+", D, ["*", B, X]]])

\qquad \purple{expr(["+", ["*", E * A, X], E * C])} + expr(["*", F, ["+", D, ["*", B, X]]])

El signo de menos delante de los paréntesis significa que multiplicamos cada término dentro del paréntesis por \purple{F}:

Distribuye el \purple{F} en el paréntesis:

\qquad expr(["+", ["*", E * A, X], E * C]) F < 0 ? "" : "+" \purple{F(}\gray{expr(["+", D, ["*", B, X]])}\purple{)}

\qquad expr(["+", ["*", E * A, X], E * C]) (F * D) < 0 ? "" : "+" \purple{expr(["+", F * D, ["*", F * B, X]])}

Reescribe la expresión para agrupar los términos de \pink{X} y los términos numéricos:

\qquad\pink{expr(["*", E * A, X]) + expr(["*", F * B, X])} (E * C) < 0 ? "" : "+" \blue{E * C + F * D}

Combina los términos de \pink{X}:

\qquad\pink{expr(["*", E * A + F * B, X])} (E * C) < 0 ? "" : "+" \blue{E * C + F * D}

Combina los términos numéricos:

\qquad\pink{expr(["*", E * A + F * B, X])} (E * C + F * D) < 0 ? "" : "+" \blue{E * C + F * D}

La expresión simplificada es expr(["*", E * A + F * B, X])

La expresión simplificada es expr(["+", ["*", E * A + F * B, X], E * C + F * D])