2022.02.08 아직까진 조금 어렵다.. 이해가 팍 안되는 느낌 2022.02.14 중복순열 추가 dfs로 순열 구하기 void dfs(int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) { cout m; dfs(0); return 0; } dfs로 조합 구하기 void dfs(int num, int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) cout m; dfs(1,0); return 0; } dfs로 중복조합 구하기 #include using namespace std; int n, m; int arr[9]; bool visited[9]; void dfs(int num, int cnt) { if (cnt ..
인공지능의 역사에 대해 알아보자. 인공지능 역사(초기단계) 기원전 5세기 경으로 거슬러 올라간다. 이때 활동했던 수학가는 아리스토 텔레스가 있다. 어쩌면 인공지능의 시작이라 볼 수 있는 삼단논법, 귀납법, 연역법과 Knowledge Representation(앎의 분류)를 아리스토 텔레스가 정의한다. 앎의 분류란, 쉽게 말해 파충류, 포유류.. 등과 같이 분류하는 것을 말한다. 사실 이 때까지는 인공지능과 무슨 연관이 있지 라고 생각할 수 있다. 이후 한참이 지나 1920년대, 폰 노이만의 Min-Max 게임 이론이 등장한다. (중세는 과학의 암흑기라고도 한다) 게임이론 이외에도 폰 노이만은 Simulation, Cybernetics, Singularity 와 같은 영역들을 두루 연구한다. 이..
※ 이 글은 한국항공대학교 지승도 교수님의 저서 "꿈꾸는 인공지능"의 내용을 기반으로 작성되었음을 알립니다. 인공지능, 사물 인터넷, 빅데이터 등 지능정보기술을 통해 보다 지능적인 사회로 진화함을 의미한다. '초연결' 과 '초지능'을 특징으로 한다. 그렇다면 그 중에서도 인공지능이란 무엇일까 인공지능이란, 감각하고 판단하고 행위하는 방법에 관한 연구로서, 앎을 표현하고 활용하는 시스템이다. 인공지능을 과연 '존재'로써 바라볼 수 있을까? 우리는 현재 소위 '약 인공지능'이라 불리는 AI과 같이 살아가고 있다. 단순히 기계에 불과한 것들에서 인공존재까지 점차 발전해나가는 AI, 이들을 과연 존재로써 바라볼 수 있을까에 대한 해답을 차근차근 알아가보자.
에라토스테네스의 체(sieve of Eratosthenes) = >N 이하의 소수(prime number)를 모두 정확히 찾아내는 도구 case1. O(N^2) #include #include using namespace std; const int MAX = 1000; int main(){ vector v; for(int i=2; i
정렬 - 선택 정렬 void sort(int* a, const int n) { // n개의 정수 a[0]부터 a[n-1]까지 비감소순 정렬 for (int i = 0; i < n; i++) { int j = i; //a[i]와 a[n-1]사이에 가장 작은 정수 값을 찾음 for (int k = i + 1; k < n; k++) { if (a[k] < a[j]) { j = k; // 교환 } } swap(a[i], a[j]); } } 제일 작은 정수를 찾아 앞으로 보내는 작업을 계속 반복한다. 탐색 이원탐색(binary search) int binarySearch (int arr[], int low, int high, int key) { while (low key) high = mid - 1; else..
우리가 다룰 자료구조라는 것은, 데이터 구조라고도 하며 크게는 순차구조와 비 순차구조가 있다. 순차구조(sequential structure) 자료의 논리적 순서(logical sequence)가 물리적 인접성으로 표현되는 구조로, 대표적 예시로는 스택(LIFO)과 큐(FIFO)가 있다. 비순차구조(nonsequential structure) 자료의 논리적 순서와 물리적 인접성이 무관한 구조로 논리적 순서를 표현하기 위한 별도의 방법이 필요한 구조로, 대표적 예시로는 트리와 그래프 등이 있다. 자료구조뿐만 아니라 OOP 역시 같이 다룰 예정인데, 객체지향이란, 캡슐화 상속 다형성을 모두 만족하는 프로그래밍 기법을 말한다. 객체지향의 장점 1. 개발의 간소화 - 복잡한 작업을 부분 작업들로 ..