Liệt Kê Các Tập Con K Phần Tử - TITYTUS

Bỏ qua nội dung

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
  • Thêm
  • Email
Thích Đang tải...

Có liên quan

Điều hướng bài viết

Mã đi tuần Xá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

Từ khóa » Thuật Toán Liệt Kê Tập Con