cartesianProductCardinalityN<T> static method

int cartesianProductCardinalityN<T>(
  1. List<CustomSet<T>> sets
)

Calculates the cardinality of the Cartesian product of n sets.

Formula: |A₁ × A₂ × ... × Aₙ| = |A₁| × |A₂| × ... × |Aₙ|

If any set is empty, the result is 0.

Example:

final sets = [
  CustomSet<int>([1, 2]),
  CustomSet<String>(['a', 'b']),
  CustomSet<bool>([true, false]),
];
print(CardinalityUtils.cartesianProductCardinalityN(sets)); // Output: 8

Implementation

static int cartesianProductCardinalityN<T>(List<CustomSet<T>> sets) {
  if (sets.isEmpty) return 0;
  if (sets.any((s) => s.isEmpty)) return 0;

  int result = 1;
  for (var set in sets) {
    result *= set.cardinality;
  }

  return result;
}