Yêu cầu: Cho một tập hợp A chứa các phần tử từ 0 đến n-1. Hãy liệt kê tất cả các tập con của A có k phần tử.
Cấu trúc dữ liệu:+ Input: 2 số tự nhiên lần lượt là n và k;+ Output: Liệt kê các tập con của A có k phần tử. Mỗi tập con in trên 1 dòng.
Nhận xét: số tập con cần liệt kê đúng bằng tổ hợp chập k của n phần tử A (nCk).
Code:
#include <stdio.h> #define SIZE 128 void xuat(int A[], int n); void sinhToHop(); int A[SIZE], n,k; int main() { scanf("%d%d",&n,&k); for (int i=0;i<n;i++) A[i]=i; sinhToHop(); return 0; } void sinhToHop() { int subA[SIZE]={0}; for (int i=0;i<k;i++) subA[i]=i; while (1) { xuat(subA,k); int j; for (j=k-1;subA[j]==n-k+j && j>=0;j--); if (j>=0) subA[j]++; else return; for (int jj=j+1;jj<k;jj++) subA[jj]=subA[jj-1]+1; } } void xuat(int A[], int n) { for (int i=0;i<n;i++) printf("%d ",A[i]); printf("\n"); }
Biên dịch: https://ideone.com/fork/r5yuTI
Chia sẻ:
Tweet
In (Mở trong cửa sổ mới)In
Thêm
Gửi email một liên kết cho bạn (Mở trong cửa sổ mới)Email
ThíchĐang tải...
Có liên quan
Điều hướng bài viết
TrướcMã đi tuầnTiếp theoXác xuất thống kê
Bình luận về bài viết này Hủy trả lời
Δ
Tìm kiếm cho:
Chuyên mục
Chuyên mục Chọn chuyên mục Bài tập (4) Game theory (1) Không phân loại (1) Lập trình (12) Tài liệu (2) Toán học (5)
Xem nhiều
Minesweepers
Thuật toán Dijkstra tìm đường đi ngắn nhất trên đồ thị
Các thao tác xử lý bit
IT
Kỳ vọng và phương sai
Algorithms
Algorithms
Dịch thuật
Trang này sử dụng cookie. Tìm hiểu cách kiểm soát ở trong: Chính Sách Cookie
Bình luận
Theo dõiĐã theo dõi
TITYTUS
Theo dõi ngay
Đã có tài khoản WordPress.com? Đăng nhập.
TITYTUS
Theo dõiĐã theo dõi
Đăng ký
Đăng nhập
URL rút gọn
Báo cáo nội dung
Xem toàn bộ bài viết
Quản lý theo dõi
Ẩn menu
%d Tạo trang giống vầy với WordPress.comHãy bắt đầu