Liệt kê các tập con k phần tử của tập n phần tử bằng thuật toán Back Track

Liệt kê các tập con k phần tử của tập n phần tử bằng thuật toán Back Track

Xem lại lý thuyết thuật toán Back Track

>> Lý thuyết về thuật toán quay lui Back Track

Biểu diễn tập con k phần tử dưới dạng c1, c2,.., ck, trong đó 1< c1các giá trị đề cử cho ci là từ ci-1+ 1 cho đến n - k + i. Cần thêm vào c0 = 0. Các giá trị đề cử này mặc nhiên được chấp nhận mà không cần phải thêm điều kiện gì.

Liệt kê các tập con k phần tử của tập n phần tử bằng thuật toán Back Track

Chương trình cài đặt:

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#define MAX  100

int B[MAX], n, k, count = 0;

void Init(void){

 printf("\n Nhap n="); scanf("%d", &n);

 printf("\n Nhap k="); scanf("%d", &k);

 B[0] = 0;

}

void Result(void){

 int i; count++;

 printf("\n Tap thu %d:", count);

 for (i = 1; i <= k; i++){

  printf("%3d", B[i]);

 }

 getch();

}

void Try(int i){

 int j;

 for (j = B[i - 1] + 1; j <= (n - k + i); j++){

  B[i] = j;

  if (i == k) Result();

  else Try(i + 1);

 }

}

void main(void){

 clrscr();

 Init();

 Try(1);

}

 

Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
VirtualBox

Sử dụng VirtualBox chạy Internet Explorer trên Mac OS

Internet Explorer (IE) là trình duyệt web được Microsoft phát triển dành riêng cho hệ điều hành Windows, và đáng tiếc là hiện tại nó không có cho hệ điều hành Mac OS. Tuy vậy thì vẫn có nhiều cách để bạn mang IE lên chiếc máy Apple của mình. Có thể dùng Wine, CrossOver để tạo môi trường ảo rồi chạy IE, cũng có thể dùng VMware Fusion hay Parallels Desktop ..

Samsung Conquer 4G Review

Samsung Conquer 4G Review

Though to be a budget 4G devices, the Samsung Conquer 4G is very elegant and stylish. I was surprised at how well put together this phone is. The manufacturers seemed to have put a lot of attention to detail when making this gadget.

Dev dự án Pebble Application to Record a Geo Location in Drupal

Dev dự án Pebble Application to Record a Geo Location in Drupal

This tutorial describes how to build a Pebble "smart watch" application for a Drupal website using the PebbleKit Javascript Framework.

Tomdesgin.vn

 

Drupal Services