inclusionExclusion2<T> static method

int inclusionExclusion2<T>(
  1. CustomSet<T> a,
  2. CustomSet<T> b
)

Applies the inclusion-exclusion principle for two sets.

Formula: |A ∪ B| = |A| + |B| - |A ∩ B|

This calculates the cardinality of the union without actually computing the union, which can be more efficient for large sets.

Example:

final a = CustomSet<int>([1, 2, 3, 4, 5]);
final b = CustomSet<int>([4, 5, 6, 7, 8]);
final count = AdvancedSetOperations.inclusionExclusion2(a, b);
print(count); // Output: 8

Implementation

static int inclusionExclusion2<T>(CustomSet<T> a, CustomSet<T> b) =>
    a.cardinality +
    b.cardinality -
    SetOperations.intersection(a, b).cardinality;