Thuật toán tính tổ hợp – Cách tính tổ hợp trong C++

Note :Bức ảnh bên trên thể hiện rất rõ ràng về chủ đề Thuật toán tính tổ hợp – Cách tính tổ hợp trong C++, nội dung bài viết vẫn đang tiếp tục được các phóng viên cập nhật . Hãy quay lại trang web hàng ngày để đón đọc nhé !!!

Hôm nay mình sẽ giới thiệu đến các bạn cách tính tổ hợp trong c++ bằng phương pháp đệ quy và phương pháp lặp. Nhưng trước tiên ta cùng tìm hiểu tổ hợp là gì nhé ?

Trong Toán học, tổ hợp là cách chọn những phần tử từ một nhóm lớn hơn mà không phân biệt thứ tự. Ví dụ chọn 2 trong 3 phần tử {1, 2, 3 } sẽ có ba cách chọn đó là: {1, 2}, {1, 3}, {2, 3}. Các bạn có thể tham khảo tại đây để hiểu rõ hơn.

Ta có công thức truy hồi như sau:

Với các tính chất sau:

Từ công thức truy hồi trên ta sẽ dễ dàng viết được một hàm đệ quy để tính tổ hợp như sau:

Sau khi chạy chương trình thì chúng ta sẽ có kết quả sau

Các bạn có thể thấy ở trên mình dùng ba điểm neo để làm điều kiện dừng đó là:

Hoàn toàn đúng với các tính chất mình đã trình bày ở trên nhé ^_^

Nhưng nhược điểm của phương pháp đệ quy này lại là tốc độ. không tin thì bạn cứ thử nhập k và n lớn xí nhé !

Số các tổ hợp chập k của n phần tử:

Với công thức trên thì ta chỉ cần viết một hàm tính giai thừa là xong rồi phải không nào. Chúng ta cùng bắt đầu nhé

Mặc dù là nhanh nhưng cách làm trên vẫn không thể tính được nhũng số tổ hợp lớn được. Lý do đơn giản là vì khi tính ra giai thừa thì con số đã rất lớn. Đó cũng là lý do mà mình dùng kiểu long long ở trên (Nhưng chẳng nhằm nhò gì ^_^)

Các bạn thử cải thiện chương trình trên xem sao nhé ! Nếu có gặp khó khăn gì thì đừng ngại comment ở phía dưới mình sẽ hỗ trợ các bạn nhiệt tình. Bye !!!

Blog chia sẻ kiến thức lập trình của Hiếu, xây dựng cộng đồng những người học lập trình. Cho đi kiến thức mình có là cách học tập hiệu quả nhất

- BẠN BÈ & ĐỐI TÁC -

© 2018-2020. Bản quyền thuộc Lập Trình Không Khó. Privacy & Terms

Tiếp đó, để mọi nguời hiểu sâu hơn về Thuật toán tính tổ hợp – Cách tính tổ hợp trong C++, mình còn viết thêm một bài viết liên quan tới bài viết này nhằm tổng hợp các kiến thức về công thức ck của n . Mời các bạn cùng thưởng thức !

Lời kết :Hôm nay mình sẽ giới thiệu đến các bạn các tính tổ hợp trong c++ bằng phương pháp đệ quy và phương pháp lặp.