Tích Descartes (Cartesian Product)
Tích Descartes của hai tập hợp (mảng) A và B, ký hiệu A × B, là tập hợp tất cả cặp có thứ tự (a, b) với a ∈ A, b ∈ B.
Nói đơn giản: hoán vị tất cả mảng 2 phần tử, phần tử đầu từ mảng 1, phần tử hai từ mảng 2.
Ví dụ:
const arr1 = [1, 2, 3]; const arr2 = [4, 5];
Tích Descartes:
const product = [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]];
Ví dụ
const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const cartesianProduct = (arr1, arr2) => {
const res = [];
for(let i = 0; i < arr1.length; i++){
for(let j = 0; j < arr2.length; j++){
res.push([arr1[i]].concat(arr2[j]));
};
};
return res;
};
console.log(cartesianProduct(arr1, arr2));Kết quả
Kết quả in ra console:
[ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]