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.

0

Share

Download to read offline

이산수학03

Download to read offline

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

480

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×