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

 
Apple’s Black Friday Deals Revealed

Apple’s Black Friday Deals Revealed

Yesterday, we started seeing Black Friday banners pop up on Apple.com. The top of the image read “Every gift list has its day,” and was followed by a request for customers to return to Apple’s...

Hướng dẫn viết module Ajax in Forms trên Drupal 8

Hướng dẫn viết module Ajax in Forms trên Drupal 8

We will be making a simple form which will contain a text field that will validate if the username entered exists, and a button that will replace the text field value with a random existing username.

Tên miền .xxx của hàng loạt website lớn nhất Việt Nam đã bị đầu cơ

Tên miền .xxx của hàng loạt website lớn nhất Việt Nam đã bị đầu cơ

Dù có giá cao gấp 10 lần tên miền. com, tên miền "người lớn" của hàng loạt các báo điện tử, doanh nghiệp, trang thương mại điện tử lớn nhất tại Việt Nam

Công ty diệt chuột T&C

 

Diet con trung