Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
자료구조01
Next
Download to read offline and view in fullscreen.

Share

이산수학03

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

이산수학03

  1. 1. 이산치 수학K-Combination C1조 조원 : 박구남,정준용,민영지,최고봉
  2. 2. 1. 조원별 업무 분담박구남 최종 보고서 작성 및 프로젝트 총괄정준용 알고리즘에 대한 소스 구현 및 코딩 작업최고봉 알고리즘에 대한 소스 구현 및 코딩 작업민영지 K-Combination에 대한 자료조사 및 다른 K-sample등 자료조사2. 일정4/9 각 조원들 역할분담 및 자료조사4/16 초안 검토 및 K-Combination에 관하여 토의4/18 최종안 확인 및 보고서 작성
  3. 3. 3. 자료 조사 원소의 순서 순서 유관 순서 무관 원소의 반복 k-permutation k-combination 비 반복 추출 (k-순열) (k-조합) 반복 추출 k-sample k-selection 중복 원소 추출 pattern partitionk - sample집합 S로부터 k개를 선택하는 작업 중 하나.반복을 허락하지만, 다른 순서의 독같은 원소는 목록에서 구별된다.k - selection집합 S로부터 k개를 선택 할 경우 반복은 허락하지만, 순서에 상관 없이 같은 원소는 동일하게 취급하는데, 이 경우의 목록을 집합 S로부터의 k - selection라고 한다.k - permutations집합 S로부터 k개를 선택하는데 반복은 허락하지 않는다. 하지만 선택된 원소들의 순서는목록에서 구별한다.n개의 원소를 가진 집합으로부터 k-순열의 수는 P(n,k)혹은 nPk라는 기호를 사용한다.k - combinations
  4. 4. 집합 S로부터 k개를 선택하는데 반복을 허락하지 않고 순서에 상관없이 구성.이 같은 원소는 똑같이 취급하는 경우의 목록을 k-조합(K-Combination)라고 한다.집합 S의 k-조합은 S의 부분 집합과 정확히 일치한다.k-조합의 수는 C(n,k)혹은 nCk라는 기호를 사용한다.초안#include <stdio.h>void main(){ char input[43]; char *element; int *a, *b; int n,r; int i,j; scanf("%s %d",input,&r); n = (strlen(input)-1)/2; element = (char *)malloc(n*sizeof(char)); for (i=0,j=0; i<strlen(input);i++){ if(input[i] != , && input[i] != { && input[i] !=}){ element[j]=input[i]; j++; } } a = (int *)malloc(r*sizeof(int)); b = (int *)malloc(r*sizeof(int)); for(i=0;i<r;i++){ a[i] = 1; if(i==0) a[i] = 0; } while(a[0] !=n-r){ b[0] = a[0]; for(i=1;i<r;i++) b[i]=b[i-1]+a[i]; for(i=0;i<r;i++) printf("%c",element[b[i]]); break; } a[r-1]++; for(i=j-1;r-i<r;i--) a[r-i]=1;
  5. 5. printf(","); } b[0] = a[0]; for(i=1;i<r;i++) b[i]=b[i-1]+a[i]; for(i=0;i<r;i++) printf("%c",element[b[i]]); free(element); free(a); free(b); getch();}초안 구현 및 문제점b에 의해 결정되어 출력되는 원소가 해당 위치에서 출력 할 수 있는 가장 상위의 원소일때,이과정을 최상위부터 내려오며 비교를 하는 문장을 넣지못하여 원하는 결과 값이 출력되지않았습니다.
  6. 6. 최종안#include <stdio.h>void main(){ char input[43]; char *element; int *a, *b; int n,r; int i,j; scanf("%s %d",input,&r); n = (strlen(input)-1)/2; element = (char *)malloc(n*sizeof(char)); for (i=0,j=0; i<strlen(input);i++){ if(input[i] != , && input[i] != { && input[i] !=}){ element[j]=input[i]; j++; } } a = (int *)malloc(r*sizeof(int)); b = (int *)malloc(r*sizeof(int)); for(i=0;i<r;i++){ a[i] = 1; if(i==0) a[i] = 0; } while(a[0] !=n-r){ b[0] = a[0]; for(i=1;i<r;i++) b[i]=b[i-1]+a[i]; for(i=0;i<r;i++) printf("%c",element[b[i]]); for(j=1; ; j++){ if(b[r-j] == n-j){ a[r-j-1]++;
  7. 7. continue; } break; } a[r-1]++; for(i=j-1;r-i<r;i--) a[r-i]=1; printf(","); } b[0] = a[0]; for(i=1;i<r;i++) b[i]=b[i-1]+a[i]; for(i=0;i<r;i++) printf("%c",element[b[i]]); free(element); free(a); free(b); getch();}최종안 코딩을 하면서배열에서 크기를 43으로지정(최대 20개의원소,괄호 2개, 콤마(,)19개)하여 선언하였으며, 입력받은 문자열에서 원소를 뽑아 동적할당 된 배열에 집어넣었습니다.프로젝트를 진행하면서..포인터와 배열에 관해 더 자세하게 알수 있었으며, 조원들끼리 서로 합심하여 모두 적극적으로 참여 한 결과 프로젝트가 성공적으로 완성되었습니다.조원들의 적극적인 참여가 일의 능률향상에 도움이 된다는것을 새삼 느꼈으며 조별활동의장점을 새로 느낄 수 있었습니다.

Views

Total views

482

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×