Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Hãy sử dụng FireFox để web hiển thị tốt hơn!


Share | 
 

 Liệt kê các tập con k phần tử - (Phương pháp sinh)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Liệt kê các tập con k phần tử - (Phương pháp sinh)   Fri May 13, 2011 2:45 pm

Fri May 13, 2011 2:45 pm » Liệt kê các tập con k phần tử - (Phương pháp sinh)
Lập chương trình liệt kê các tập con có k phần tử từ tập hợp {1,2,....,n}
Số tập con cần liệt kê là tổ hợp chập k của n

Code:
#include <stdio.h>
#include <conio.h>
#define MAX 8
void main()
{
    int a[MAX],n,k,i,j,d=1;
//===========Nhap
    do
    {
        printf("Nhap n ( 0<n<%d): ",MAX);
        scanf("%d",&n);
    }while(n<1||n>MAX);
    do
    {
        printf("Nhap k ( 0<k<%d): ",n);
        scanf("%d",&k);
    }while(k<1||k>n);
//===========Xuat
    printf("Cac tap hop con:\n");
    for( i=0;i<k;)
        a[i]=++i;
    /*    for( i=0;i<k;i++)
        a[i]=i+1; */
    while(i>=0)
    {
        printf("%2d. ( ",d++);
        for(i=0;i<k;i++)
        {
            printf("%d",a[i]);
            if(i<k-1)
                printf(", ");
        }
        printf(")\n");
        i=k-1;
        while(i>=0&&a[i]==n-k+i+1) 
            i--;
        if(i>=0)
        {
            a[i]++;
            for( j=i+1;j<k;j++)
                a[j]=a[j-1]+1;
        }
    }
    getch();
}


Tboy



Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
thanhhuynh
Trứng vịt
Trứng vịt
avatar


Tổng số bài gửi : 1
Cảm ơn : 1
Danh vọng : 0
Join date : 02/06/2011

Bài gửiTiêu đề: Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)   Thu Jun 02, 2011 9:04 am

Thu Jun 02, 2011 9:04 am » Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)
Bạn check lại dùm thử sao nó chạy miệt mài ko có điểm dừng :)


thanhhuynh

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)   Thu Jun 02, 2011 12:00 pm

Thu Jun 02, 2011 12:00 pm » Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)
Mình chạy = C-free thấy nó chạy được mà!!! Để coi lại, ko bik VC++ 6.0 thì thế nào


Tboy





Được sửa bởi Tboy ngày Thu Jun 02, 2011 12:36 pm; sửa lần 1.
Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)   Thu Jun 02, 2011 12:34 pm

Thu Jun 02, 2011 12:34 pm » Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)
Mình chạy thử bằng VC++ 6.0 ruj`

Code:
//===========Xuat
    printf("Cac tap hop con:\n");
    for( i=0;i<k;)
        a[i]=++i;
    /*    for( i=0;i<k;i++)
        a[i]=i+1; */

Theo lý thuyết thì viết như vầy cũng ok nhưng mà chạy bằng VC++ 6.0 thì nó chạy hoài lun. Nên bạn dùng đoạn nhập mảng dưới thôi.
Code:
printf("Cac tap hop con:\n");
        for( i=0;i<k;i++)
        a[i]=i+1;


Tboy



Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
Sponsored content




Bài gửiTiêu đề: Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)   

» Re: Liệt kê các tập con k phần tử - (Phương pháp sinh)


Sponsored content

Về Đầu Trang Go down
 

Liệt kê các tập con k phần tử - (Phương pháp sinh)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: Cơ sở lập trình 2 :: Bài tập khác-