inclusionExclusion3<T> static method
Applies the inclusion-exclusion principle for three sets.
Formula: |A ∪ B ∪ C| = |A| + |B| + |C| - |A ∩ B| - |A ∩ C| - |B ∩ C| + |A ∩ B ∩ C|
This extends the two-set formula to handle three sets.
Example:
final a = CustomSet<int>([1, 2, 3, 4]);
final b = CustomSet<int>([3, 4, 5, 6]);
final c = CustomSet<int>([5, 6, 7, 8]);
final count = AdvancedSetOperations.inclusionExclusion3(a, b, c);
print(count); // Output: 8
Implementation
static int inclusionExclusion3<T>(
CustomSet<T> a,
CustomSet<T> b,
CustomSet<T> c,
) =>
a.cardinality +
b.cardinality +
c.cardinality -
SetOperations.intersection(a, b).cardinality -
SetOperations.intersection(a, c).cardinality -
SetOperations.intersection(b, c).cardinality +
SetOperations.intersection(
SetOperations.intersection(a, b),
c,
).cardinality;