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

 
Mạng xã hội Twitter tròn 6 tuổi

Mạng xã hội Twitter tròn 6 tuổi

Cách đây 6 năm, ngày 21/3/2006, Jack Dorsey đã "tweet" đầu tiên trên mạng xã hội Twitter. Kể từ đó cho đến nay, Twitter trở thành một dịch vụ tin nhắn ngắn, mạng xã hội yêu thích của các nhân vật nổi tiếng toàn cầu.

Hội thảo công nghệ Stateless vs Stateful Serverless Architecture

Hội thảo công nghệ Stateless vs Stateful Serverless Architecture

Chỉ trong vòng một thập kỷ, điện toán đám mây đã trở thành một phần không thể thiếu trong công tác hàng ngày ở ngành CNTT. Các máy chủ, từ những hệ thống vật lý khổng lồ, đã tiến hóa lên nền tảng đám mây

Automatically Update All Your Social Networks From Drupal

Tự động cập nhật nội dung lên Social Networks từ Drupal site

Would you like to be able to update your Drupal site and automatically send those updates to Twitter, Facebook, Linkedin, MySpace, Ning and dozens of other sites?

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

 

Diet con trung