Distributive Multiply Across
import mathy_core.rules.distributive_multiply_across
Distributive Property
can distribute multiplication across grouped terms. This has the effect of removing a grouping and can expose the terms that were inside for further simplification depending on the problem type. This rule is expressed by the equation a(b + c) = ab + ac
Transformations¶
Given a multiplication of a
and (b + c)
, this rule distributes a
across b
and c
, leaving only the simpler form of ab
and ac
.
Addition¶
a(b + c) = ab + ac
+
* / \
/ \ / \
/ \ / \
a + -> * *
/ \ / \ / \
/ \ / \ / \
b c a b a c
Examples¶
Info
All the examples shown below are drawn from the mathy test suite that verifies the expected input/output combinations for rule transformations.
Input | Output | Valid |
---|---|---|
(2 + k^2) * w^4 | 2w^4 + w^4 * k^2 | ✔ |
(1 + k^2) * w^4 | 1w^4 + w^4 * k^2 | ✔ |
(4 + v) * (12 + r) | (12 + r) * 4 + (12 + r) * v | ✔ |
(12 + r) * v | 12v + v * r | ✔ |
7 * (1 + 1) | 7 * 1 + 7 * 1 | ✔ |
7x * (2 + 1) | 7x * 2 + 7x * 1 | ✔ |
API¶
DistributiveMultiplyRule¶
DistributiveMultiplyRule(self, args, kwargs)
Distributive Property a(b + c) = ab + ac
The distributive property can be used to expand out expressions to allow for simplification, as well as to factor out common properties of terms.
Distribute across a group
This handles the a(b + c)
conversion of the distributive property, which distributes a
across both b
and c
.
note: this is useful because it takes a complex Multiply expression and replaces it with two simpler ones. This can expose terms that can be combined for further expression simplification.
+
* / \
/ \ / \
/ \ / \
a + -> * *
/ \ / \ / \
/ \ / \ / \
b c a b a c