Tính tổ hợp, chỉnh hợp, hoán vị
Tính tổ hợp, chỉnh hợp, hoán vị
Nhập n (tổng số phần tử) và k (số phần tử chọn ra). Kết quả cả bốn dạng hiện cùng lúc để bạn đối chiếu.
Tổ hợp C(10, 3)
120
C(n,k) = n! / [k!·(n−k)!]
Chọn k phần tử, KHÔNG quan tâm thứ tự. Ví dụ: chọn 3 bạn vào ban cán sự.
Chỉnh hợp A(10, 3)
720
A(n,k) = n! / (n−k)!
Chọn k phần tử CÓ quan tâm thứ tự. Ví dụ: chọn 3 bạn làm lớp trưởng, phó, thư ký.
Hoán vị P(10)
3.628.800
P(n) = n!
Sắp xếp TẤT CẢ n phần tử theo thứ tự. Ví dụ: xếp 10 bạn thành một hàng.
Tổ hợp lặp
220
C(n+k−1, k)
Chọn k phần tử từ n loại, mỗi loại lấy được nhiều lần. Ví dụ: mua 3 cái bánh từ 10 loại.
Câu hỏi thường gặp
- Phân biệt tổ hợp và chỉnh hợp thế nào?
- Câu hỏi quyết định là: đổi thứ tự có tạo ra kết quả khác không? Nếu có thì dùng chỉnh hợp, nếu không thì dùng tổ hợp. Chọn 3 bạn vào đội tuyển là tổ hợp vì đội gồm A, B, C giống hệt đội gồm C, B, A. Chọn 3 bạn làm lớp trưởng, lớp phó, thư ký là chỉnh hợp vì đổi vai trò là khác hẳn.
- Vì sao A(n,k) luôn lớn hơn hoặc bằng C(n,k)?
- Vì A(n,k) = C(n,k) × k!. Mỗi nhóm k phần tử mà tổ hợp đếm một lần thì chỉnh hợp đếm k! lần, ứng với k! cách sắp xếp thứ tự trong nhóm đó. Khi k = 1 hoặc k = 0 thì k! = 1 nên hai giá trị bằng nhau.
- Tổ hợp lặp dùng khi nào?
- Khi mỗi loại phần tử được chọn nhiều lần. Ví dụ mua 3 cái bánh từ 10 loại, bạn có thể mua 3 cái cùng loại. Công thức là C(n+k−1, k). Lưu ý ở đây k có thể lớn hơn n, khác với tổ hợp thường.
- Vì sao 0! = 1?
- Đây là quy ước có lý do: nó làm công thức C(n,0) = n!/[0!·n!] = 1 đúng với thực tế — có đúng một cách chọn ra tập rỗng. Quy ước này giữ cho mọi công thức tổ hợp nhất quán mà không cần trường hợp riêng.
- Vì sao công cụ giới hạn n ≤ 170?
- Vì 171! vượt quá giá trị lớn nhất mà JavaScript biểu diễn được, kết quả sẽ thành vô cực. Ngay cả trước ngưỡng đó, với n lớn thì hoán vị P(n) đã vượt giới hạn số nguyên chính xác — khi đó công cụ báo rõ thay vì hiển thị số sai.
- Công cụ tính thế nào để tránh sai số?
- Thay vì tính n! rồi chia, công cụ nhân dần k thừa số và chia ngay trong vòng lặp. Nhờ vậy giá trị trung gian nhỏ hơn nhiều và kết quả giữ được độ chính xác với n lớn hơn hẳn cách tính trực tiếp theo định nghĩa.
Nội dung rà soát ngày 19/07/2026. Công cụ giới hạn n ≤ 170 để kết quả còn nằm trong khoảng biểu diễn chính xác. Khi giá trị vượt ngưỡng số nguyên an toàn, công cụ báo rõ thay vì hiển thị số đã mất chính xác.