태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

 

  쇼너짱의
         Warm IT up !!  

 

*쇼너짱은 누규?
검색 
분류 전체보기 (229)
Shoner Life (31)
Data Mining (1)
Media와 IT (68)
모바일퓨처리스트 (7)
Mobile (12)
UX공부&경험 (3)
MS Windows (7)
실버라이트와닷넷 (8)
Python&Django (2)
정보검색&시각화 (15)
에너지와 환경 (3)
멋진 장면,글,노래 (9)
쇼너짱 me2DAY (56)
Project P (0)
Vehicle (7)
MS  me2sms  실버라이트  me2mms  show  MSP  me2photo  ucc  KTF  휴대폰 
 매출은 쑥쑥..
└>Salesforce.com
 F1 지원 1천억..
└>dream reader
 갈비김치찌개..
└>맛多? 맞다!
 쇼너짱의 생각
└>shoner's me2DAY
 JIXmall :: ajax
└>JIXmall.com
«   2010/08   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
+ 6 Fingers
+ ai-times
+ Blogom
+ DJ SUNGWOO
+ Eluard's Play..
+ happysphere
+ Mook
+ OutSider
+ The Dynamo Of..
+ ♡♡♡♡♡
+ 꿈꾸는아이,..
+ 루카쨩
+ 멜로디언님의..
+ 밥알양(no-name)
+ 소명
+ 이야기#2
+ 작은아이!
+ 절대미녀 누님
+ 지에고의 게임..
+ 크림치즈베이글
+ Total : 249,062
+ Today : 17
+ Yesterday : 113
  

MSP Banner
Channel 8
Silverlight
DreamSpark
xna Team
미투데이
믹시

 

 

 

+   [Shoner Life]   |  2010/01/08 18:09  

데이터마이닝에서 FP-Grwoth 알고리즘을 구현하기 위해서는
트리 구조 구현, 링크 구현 ,부분집합 구하기 등등의 프로그래밍 테크닉이 필요하다.

그 중에서 부분집한 구하는 함수를 데이터마이닝 소스에서 떼내어 정리 해 보았다.



#include <iostream>
#include <math.h>
using namespace std;

int n;  //집합내 원소들의 총 개수
char* items;  //집합을 문자로 저장할 공간

/**
@brief 주어진 집합의 모든 부분집합을 구하는 함수
@param  현재의 부분집합을 저장할 배열, 그 배열의 인덱스, 함수의 흐름
@author http://shoner.pe.kr
*/
void powerSet(char* aSet, int aSetLen, int current)
// 완성된 부분집합 하나를 출력하는 부분
if(current==n) 
cout << "{";
for(int i=0; i<aSetLen;i++)
cout << aSet[i] << " ";
cout << "}" << endl;
}
// 재귀적 호출을 통해 하나의 부분집합을 완성하는 부분
else { 
current++;
powerSet(aSet, aSetLen, current);
current--;
aSet[aSetLen++]=items[current++];
powerSet(aSet, aSetLen, current);
}
}

int main(int argc, char **argv)
{
//집합내의 원소들의 개수를 입력받음
cout << "Input the SIZE of Set : " ;
cin >> n;
if(n<0)
{
cout << " size wrong !! " << endl;
return 0;
}

items = new char[n];

//원소들을 하나씩 입력 받음 (문자 하나)
for(int i=0; i<n;i++) 
{
cout << "Insert a element - " << i+1 << " : ";
cin >> items[i];
}

//부분집합 하나를 저장할 수 있는 공간 할당
char* aSet;
aSet = new char[n];
//부분집합 구하는 함수 호출 
powerSet(aSet, 0, 0);

cout << "all subsets No : 2^" << n << "=" << pow(2.0,n) << endl;
return 0;
}


출력 화면의 예
출력 화면의 예


//출력이 이쁘게 나오진 않지만 , 구현이 쉽다ㅋ

+실제 실행과정을 보기 쉽게 표현해 보면 아래와 같음.


다른분의 powerset 구현 소스 보기 : http://i0nucleus.egloos.com/2352366



저작자 표시 비영리 동일 조건 변경 허락

 
     , ,
     0   2
이 글의 관련글(트랙백) 주소 ::    http://shoner.pe.kr/trackback/280 관련글 쓰기
<<이전 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ... | 229 | 다음>>