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))

Expand the expression and combine the like terms:

SOLUTION
(A + F * B) + X + "+" + (F * D)

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

The minus sign in front of the parentheses means we multiply each term inside the parentheses by `\purple{F}`:

Distribute the `\purple{F}` into the parentheses:

`\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])}`

Combine the `X` terms:

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

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

The simplified expression is `expr(["*", A + (F * B), X])`

The simplified expression is `expr(["+", ["*", A + (F * B), X], F * D])`

(F * B) + X + "+" + (C + F * D)

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

The minus sign in front of the parentheses means we multiply each term inside the parentheses by `\purple{F}`:

Distribute the `\purple{F}` into the parentheses:

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

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

Rewrite the expression to group the numeric terms:

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

Combine the numeric terms:

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

The simplified expression is `expr(["*", F * B, X])`

The simplified expression is `expr(["+", ["*", F * B, X], C + F * D])`

(E * A + F * B) + X + "+" + (E * C + F * D)

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

The minus sign in front of the parentheses means we multiply each term inside the first parentheses by `\purple{E}`:

Distribute the `\purple{E}` into the first set of parentheses:

`\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]])`

The minus sign in front of the parentheses means we multiply each term inside the parentheses by `\purple{F}`:

Distribute the `\purple{F}` into the parentheses:

`\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])}`

Rewrite the expression to group the `\pink{X}` terms and numeric terms:

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

Combine the `\pink{X}` terms:

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

Combine the numeric terms:

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

The simplified expression is `expr(["*", E * A + F * B, X])`

The simplified expression is `expr(["+", ["*", E * A + F * B, X], E * C + F * D])`

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

The minus sign in front of the parentheses means we multiply each term inside the first parentheses by `\purple{E}`:

Distribute the `\purple{E}` into the first set of parentheses:

`\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]]])`

The minus sign in front of the parentheses means we multiply each term inside the parentheses by `\purple{F}`:

Distribute the `\purple{F}` into the parentheses:

`\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]])}`

Rewrite the expression to group the `\pink{X}` terms and numeric terms:

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

Combine the `\pink{X}` terms:

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

Combine the numeric terms:

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

The simplified expression is `expr(["*", E * A + F * B, X])`

The simplified expression is `expr(["+", ["*", E * A + F * B, X], E * C + F * D])`