cartesianProductCardinalityN<T> static method
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;
}