반응형

분류 전체보기 430

순열의 조합

반복이 허용될 때 n 개 원소를 가진 집합에서 r개를 뽑을 때는 n^r 이 나옵니다. 반복에 의한 조합3개의 책이 있다고 가정해봅시다. (computer science book, physics book, history book) 최소한 6개의 카피본을 선택해야 한다고 가정할 때 얼마나 많은 중복을 가진 것에서 선택을 할 수 있을까요? 이런식으로 book-end 를 사용해서 책을 나눠주면 됩니다.  전체 자리는 8자리로 합니다. 그 다음 8자리에서 해야하는 것은 book-end 위치만 정의를 해주시면 됩니다. book end 위치를 정한다고 생각하면 C(8, 2)로 해주시면 됩니다.  예를 통해서 중복이 허용하는 경우를 생각해보겠습니다.  빨강, 파랑, 녹색 공들이 있을 때 각각의 더미는 8개의 공을 가지..

순열 조합

P(n,r) = n(n-1)(n-2)...(n-r+1) r 예시 100명이 참여한 경품에서 1등, 2등, 3등을 한 명씩 선발하는 방법은 모두 몇 가지 인가?P(100,3) = 970,200 가지입니다.  P(10, 4) = 10 * 9 * 8 * 7 = 5040 조합 (Combinations)n개의 다른 원소로 구성된 집합이 있습니다. r-조합은 r개 원소에 대한 unordered selection입니다. r  r 조합의 개수는 다음과 같이 표기할 수 있습니다 .C(n,r) 대각선을 그었을 때 대각선 위로 이동하지 않는 개수는 어떻게 될까요? - Gn + Bn = C(2n, n)좋은 경로의 개수는 나쁜 경로를 빼주면 되는데요. Bad route의 개수는 (n+1) * (n-1) grid가 되는데요.이는..

경우의 수 확률 세기

곱셉의 법칙이와 같은 메뉴를 보고 각각 하나를 주문하고 싶다고 생각을 해봅시다. 이 경우에 3 * 3 * 4 = 24개가 될 것입니다.  원소가 m개의 집합에서 원소가 n개인 집합으로의 1대1 함수m > n : 1 대 1 함수가 존재할 수 없습니다.m 결국 가능한 모든 가지 수는 n(n-1)(n-2) ... (n-m+1) 입니다.  비둘기집 원리4개의 공간에 6개의 공을 넣어야 한다면 우리는 필연적으로 2개 이상의 공이 들어가는 1개 이상의 공간이 있다는 것을 알 수 있습니다.  이것이 처음의 비둘기집의 원리입니다.  n개의 공이 k개의 장소에 들어가야 할 때 k

[이산수학] 재귀적 알고리즘

재귀적이란?어떤 알고리즘이 문제를 보다 작은 입력을 갖는 동일한 문제로 단순화시켜 해결하는 것 분할정복분해된 각각의 하위 문제는 간단한 방법으로 풀릴 수 있는 문제가 될 때까지 계속해서 분해, 마지막으로 분해된 하위 문제들의 해답들은 원래 문제의 해답을 얻기 위해 결합 n! 는 1에서 n까지의 곱으로 정의를 하는 것입니다.  팩토리얼의 알고리즘factorial (n) { if(n == 0) return 1 return n*} n!이 나오는 것을 본다면  1. 기본단계n이 0일 때 0! (=1)을 반환합니다. 2. 귀납단계(n-1)! 일 때 성립한다고 가정 n>0n에 대해서 성립하는지 가정n이 아니면 n * (n-1)! 시행(n-1)! * n = n! n일때 정확하게 n 성립최종적으로 알고리즘..

객체지향프로그래밍 그룹액티비티 6

객체지향프로그래밍 1-1#include using namespace std;void fun(int* ptr) { *ptr = 30;}int main(){ int y = 20; fun(&y); cout y값이 30으로 변경되고 출력은 30이 됩니다.  객체지향프로그래밍 1-2 #include using namespace std;int main() { int* ptr; int x; ptr = &x; *ptr = 0; cout 포인터를 사용하여 변수의 값을 제어하는 간단한 것입니다.  먼저 포인터와 변수를 설ㅇ정해주었는데요. ptr은 정수를 가리키는 포인터이며 x는 정수형 변수입니다.  ptr = &x; 을 통해 ptr에 x의 주소를 저장함으로서 이제 ptr은 x를 가리키게 됩니다. *ptr = 0은 ptr이..

[논리회로] 플립플롭

플립플롭이란?두 가지 안정된 상태를 가지는 1비트 기억소자를 말합니다.  0또는 1인데 쌍안정 bi-stable 상태를 말합니다. 출력이 0또는 1 안정된 상태를 말합니다. 그대로 유지하고 있으니 전원이 인가되었을 때 기억소자라고 부를 수 있습니다.   래치는 클록이 없기 때문에 입력이 바뀌면 바로 플롭이 바뀝니다. 클록이 있으면 플립플롭이라고 불립니다. SR래치 SR 래치는 "Set-Reset 래치" 또는 "SR Latch"로 불리며, 디지털 회로에서 자주 사용되는 기본적인 플립플롭 장치 중 하나입니다. SR 래치는 두 개의 입력과 두 개의 출력으로 구성됩니다. 주로 상태 저장 장치로 사용되며, 현재 상태를 유지하거나 새로운 상태로 전환하는 기능을 가지고 있습니다. 구성 요소 SR 래치는 두 개의 NA..

[c++] 접근 제어와 캡슐화 & 연산자 오버로딩

private를 통해 접근을 제어하는 이유private 지정자는 하나의 지정자를 다른 외부로부터 이 클래스를 상대적으로 독립성을 가지게 해주는 역할을 합니다. 코딩을 하다가 어떤 이유로 변수의 이름 같은 경우를 바꿔야하는 경우가 발생합니다. 하나를 바꾸게 되면 코드 전체를 훑어가면서 이름을 다 바꿔줘야 합니다.  어떤 변수나 이름을 바꾸게 되면 그 파급효과가 프로그램의 전체에 영향을 미칠 수 있습니다. 모든 부분을 찾아서 해줘야 하지만 클래스에 데이터 멤버를 private로 할 경우 private 멤버는 이 클래스 내부에서만 접근이 가능하므로 클래스 외부에 대해서는 신경 쓸 필요가 없어집니다.  상대적인 독립성을 가진다는 간단한 예입니다.  접근할 수 없는 멤버들은 최소화해주면서 만들어주면 됩니다.  p..

객체지향프로그래밍 그룹액티비티5

그룹 액티비티 1번class myClass{ int pra = 5;public: int pub = 10; void set_pr(int x) { pra = x; } void set_pu(int x) { pub = x; }};int main() { myClass m; int a, b; a = m.pra; b = m.pub; m.set_pr(100); m.set_pu(200); return 0;}pra가 private로 선언되어 있습니다. private로 선언되어 있을 경우 클래스 외부에서 직접 접근할 수 없기 대문에 오류가 나옵니다. 이런 경우 public으로 처리를 해서 해야합니다. 아니면 public에 get_pr() 함수를 생성해서 처리해줘도 됩니다. class myClass{ int pra = 5;p..

반응형