Javascript - Tạo các tập con trong 1 mảng
Tạo các tập con trong 1 mảng
Viết một hàm JavaScript để lấy tất cả các tập hợp con có thể có với độ dài cố định (ví dụ 2)
Mảng mẫu: [1, 2, 3] và độ dài tập con là 2
Kết quả: [[2, 1], [3, 1], [3, 2], [3, 2, 1]]
Mã nguồn:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript array subset</title>
<script>
function subset(arra, arra_size)
{
var result_set = [],
result;
for(var x = 0; x < Math.pow(2, arra.length); x++)
{
result = [];
i = arra.length - 1;
do
{
if( (x & (1 << i)) !== 0)
{
result.push(arra[i]);
}
} while(i--);
if( result.length >= arra_size)
{
result_set.push(result);
}
}
return result_set;
}
document.write(subset([1, 2, 3], 2));
</script>
</head>
<body>
</body>
</html>
Lưu đồ thuật toán: