Mình có làm một file trên punker về xuất danh sách tổ hợp chập k của n phần tử, các bạn xem link bên dưới
Vi du backtracking
kết quả chạy ra là:
[[0,1,2],[0,1,3],[0,1,4],[0,2,3],[0,2,4],[0,3,4]]
this is code
$scope.liet_ke_to_hop_chap_k_of_n_phan_tu = function() {
//cho n=3,k=2 ; liet ke nhu sau 12,13,23...
function Try(i) {
var j;
for (j = x[i - 1] + 1; j <= n - k + i; j++) {
x[i] = j; //thử cho giá trị nhỏ nhất
if (i == k) { //in ra//cũng như đệ qui thôi, phải có điểm kết thúc
$scope.print(x);
} else {
Try(i + 1); //thử với giá trị kế tiếp
}
}
}
var x = [];
x[0] = 0;
var n = 4;
var k = 2;
Try(1);
}
- bi giờ mình muốn loại cái số 0 ở đầu trong đoạn code Try thì làm thế nào?
- Tại sao x[i-1]+1
- Tai sao n-k+i
- Tại sao i==k
- Sửa bài toán
cho n=3;k=2 ==> xuat ra [ 01, 02, 12 ] được không??
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?