서브셋 생성 방법

1421 단어 회소법
중복 원소가 없는 집합을 제시하여 서브집합의 각종 상황을 구하고 출력합니다!
 
방법1: 증량 구조법
사고의 방향은 한 번에 하나의 요소를 선택하여 집합에 넣는 것이다. 절차는 다음과 같다.
코드:
#include
#define N 100
int p[N+2],num[N+2];
int cmp(const void *a, const void *b) {
	return *(int *)a-*(int *)b;
}
void print_subset(int n, int *p, int cur){
    int i,s;
    for(i=0;i

방법2: 위향량법
사고방식은 하나의 벡터 p[i]를 사용하고 값이 1이면num[i]를 선택했음을 나타낸다. 그렇지 않으면 선택하지 않았다.이런 방법은 끝까지 두루 돌아다닌 후에야 한 조의 해를 얻을 수 있는데, 효율은 방법 1보다 낮다.
코드:
#include
#include
#include
#define N 100
int p[N+2],num[N+2];
int cmp(const void *a, const void *b) {
	return *(int *)a-*(int *)b;
}
void print_subset(int n,int cur){
    int i,flag;
	if(cur==n) {
		for(i=0,flag=0;i

 
방법3: 이진법, 잘 몰라...
코드:
#include
#include
#define N 100
int p[N+2];
void print_subset(int n,int s) {
    int i,flag;
    for(i=0,flag=0;i

좋은 웹페이지 즐겨찾기