반응형

전체 647

이미테이션 게임(튜링머신 vs 에니그마) [앨런 튜링]

앨런 튜닝(1912~1954) 42세의 짧은 일생이지만 그의 업적은 컴퓨터의 발전에 큰 기여를 하게 된다. 그가 만든 튜링머신은 기억장치, 입출력, 중앙처리장치의 현대적 컴퓨터의 모델의 토대가 된다고 볼 수 있다. 물론 최근 이미테이션 게임이라는 영화를 통해 그의 업적이 각광 받고 있지만, 그에게 영향을 준 다른 학자들도 잊지 말아야 할 것이다. 2012/12/06 - [컴퓨터구조] - 컴퓨터이야기 (해석기관) 계산기관(해석기관)에 대한 연구는 앨런튜닝이 존재하기 전 100여년 전으로 거슬러 올라간다. 찰스배비지(1796~1871)라는 영국의 수학자는 분석기관에 대한 틀을 마련하였고 (영국) 에이다 러브레이스(1815~1852)는 찰스배비지의 해석기관에 적용할 연산방법에 대한 연구를 하였다.(에이다를 최..

컴퓨터구조 2015.04.14

[c++] 스마트 포인터 (auto_ptr) 에 대한 이해

이번 포스팅은 스마트 포인터(auto_ptr)에 대해서 알아보겠습니다. C++11에선 (스마트 포인터)shared_ptr이 표준에 추가되었다. 이는 참조 카운팅을 추가하여 스마트 포인터간의 매끄러운 대입을 가능하게 하였다. 스마트포인터의 종류에 대한 설명은 다음 포스팅으로 미루고 여기에선 스마트포인터의 원리에 관해서 원론적인 이야기를 할까 한다. 내용에 들어가기 앞서 스마트 포인터에 관한 이해를 위해서는 다음과 같은 주제에 대한 이해가 필히 요구된다. 템플릿, 연산자 오버로딩, 정적할당, 동적할당, 스택, 힙, 생성자,파괴자... 2014/06/16 - [프로그래밍/c++] - C++ 템플릿, 함수템플릿에 대한 이해 2014/06/17 - [프로그래밍/c++] - 클래스 템플릿에 대한 이해 C++ 201..

프로그래밍/cpp 2015.04.14

const 키워드에 대한 이해(c++)

const의 기본적 내용은 아래 글을 참조하시기 바랍니다. 2014/01/14 - [프로그래밍/C언어] - 상수포인터, 포인터상수, const c언어에서의 const를 확장하여 c++의 클래스 내부에서 사용되어지는 예를 살펴보겠습니다. 예1) 멤버변수를 const로 선언한 경우 위 코드를 컴파일해보면 두 개의 에러가 생긴다. 첫 번째는 초기화 되지 않은 멤버 Mango::m라고 하고, 두 번째는 Mango::m의 값이 읽기전용이기 때문에 값을 넣을 수 없다는 에러다. 초기화를 시켜야 하지만 생성자에서 초기화를 할 수 없다고 유추해 볼 수 있다. const멤버의 초기화 이 방법은 멤버 이니셜 라이져를 이용한 전통적인 방법이다. c++11에서는 다음과 같은 방법도 제공한다. 다음 방법은 c++11에서만 가능..

프로그래밍/cpp 2015.04.07

BCD코드 (binary coded decimal) 기초

BCD(Binary-coded decimal)-이진코드화된 십진수, 말 그대로 십진수를 이진코드로 표기한 것이다. 2진코드로 표기는 했지만 실제 십진수에 대응되는 2진수의 값과 BCD는 약간의 차이가 있다. 다음표는 각 십진수 숫자에에 해당하는 BCD코드다. 컴퓨터는 0과1의 2진코드를 사용하기 때문에 사람이 사용하는 십진수를 사용하기 위해서 십진수를 2진화할 필요가 있다. 이는 단순히 십진수를 2진수로 바꾸는 것이 아닌, 규칙성을 가진 형태의 2진코드로 바꾸는 것을 의미한다. 십진수의 기수(사용하는 수의 개수)는 0~9로 10개이고, 각각의 기수를 2진수로 바꿔 표현한 수를 BCD라고 한다. BCD의 사용과 일반적인 2진수와 차이점의 예. 459의 2진수 표현은 111001011 111011011 //..

컴퓨터구조 2014.11.26

퀵정렬 알고리즘(Quick sort)

퀵정렬(Quick Sort) - 찰스 앤터니 리처드 호어(1934~)에 의해서 고안된 정렬로 매우 빠른 정렬입니다. 퀵정렬의 이해는 재귀와 분할정복(divide and conquer)에 대한 이해를 기초로 합니다. 분할정복은 재귀를 푸는 방식인데, 큰 덩어리의 문제를 작은 덩어리로 나누어 해결하는 방식입니다. 작은 덩어리로 나눌 때는 큰 덩어리와 작은 덩어리가 구조적으로 같아야 합니다. 2014/02/26 - [알고리즘] - 하노이탑 재귀호출 알고리즘 본론에 앞서 워밍업을 해봅시다. 위 영상은 퀵정렬의 키가 되는 아이디어를 보여주지만, 너무 자세히 보진 마시기 바랍니다. 제가 설명하는 방법과는 약간의 차이가 있기 때문입니다. 위 방법으로 가능하겠지만, 비효율적인 듯 보여지네요.. 아무튼.,,위 영상에서 ..

삽입정렬 알고리즘(insertion sort)

삽입정렬(insertion sort) - 삽입정렬 알고리즘을 설명하기 전 자료를 정렬된 목록과 정렬되지 않은 목록으로 자료를 나눌 필요가 있습니다. 삽입정렬은 배열의 경우 처음 첫 번째 요소를 정렬된 목록으로 간주한 후 루프를 시작합니다. 정렬되지 않은 목록의 제일 첫 번째 요소부터 정렬된 목록과 비교하여 적절한? 위치에 삽입해 나갑니다. 정렬되지 않은 목록 끝까지 위 작업을 반복하면 모든 요소가 정렬된 부분으로 바뀌게 됩니다. 삽입정렬 알고리즘의 아이디어도 어렵지는 않지만 삽입되는 과정을 차근차근 분석할 필요가 있습니다. 위 영상은 이해는 되지만 위 영상만 보고 코드로 작성하려면 먼가 부족하거나 헷갈릴 수가 있습니다. 삽입정렬에 대한 아이디어는 알려주지만, 알고리즘의 세세한 부분이 정확하지 않다는 것을..

선택정렬 알고리즘(selection sort)

선택정렬(selection sort) - 선택정렬은 일반적으로 사람이 어떤 것을 크기 순서대로 정렬할 때 사용하는 방법과 유사한 방법입니다. 나열된 것 중에 가장 작은 또는 가장 큰 것을 선택하여 앞 또는 끝으로 보내는 작업을 반복하면 최종적으로 크기 순서대로 정렬이 되는 방식입니다. 다음 영상은 선택정렬에 대한 이해를 도와줍니다. 사람이 정렬을 할 경우 비슷한 과정을 거치지만 일반적인 사람의 경우 직관에 따라 몇몇 숫자의 위치를 정하고 그를 기준으로 수를 정렬하기 때문에 컴퓨터 입장에서 정렬하는 법을 위 영상을 보며 생각해볼 필요가 있습니다. 다음 그림은 선택정렬을 간략화한 그림입니다. 컴퓨터 입장에서 알고리즘이 실행될 때 두 수를 교환하는 과정 전에 더 많은 비교가 있습니다. 위 그림은 직관적으로 알..

버블정렬 알고리즘(bubble sort)

버블정렬(bubble sort) - 정렬 알고리즘을 배울때 보통 먼저 배우는 정렬 알고리즘 입니다. 버블정렬은 간단하기 때문에, 직관적으로 쉽게 이해할 수 있습니다. 마치 거품이 수면으로 올라오는 것 같아서 버블정렬이라고 한다네요. 버블정렬을 설명하기에 앞서 주요 정렬 알고리즘에 관한 시각적 자료를 링크하겠습니다. 정렬들간에 비교와 정렬의 특성을 파악할 수 있습니다. 버블정렬은 사람의 입장에서는 그렇게 자연스럽지 않습니다. 위 영상처럼 두 개씩 대소관계를 비교하며 위치를 바꾸어 나가는 데 컴퓨터 가 살아있다면 컴퓨터 입장에서 이러한 단순함이 오히려 쉽다고 느껴질꺼라 생각합니다. 버블 소트의 문제해결 방법은 다음과 같습니다. 1. 배열의 첫번째 요소와 두번째 요소의 대소관계를 비교한다 2. 대소관계에 따른..

타짜2 신의손을 본 후 원작 타짜를 다시 안 볼 수 없었다.

타짜는 2006년작 작품으로 타짜2와 다른 감독이다. 타짜를 워낙 재미있게 봤기 때문에 타짜2에 대한 기대감이 있어, 까다롭게 평가할 수도 있겠지만, 타짜2는 타짜1에 비해 많이 모자른 작품이라 생각된다. 우선 영화에서 가장 중요시 생각되는 것은 배우, 타짜의 조승우라는 강력한 연기파 배우는 타짜의 독특한 분위기를 잘 살리기에 적합한 배우였다 생각된다. 그럼 타짜2의 탑은 어떤가? 우선 빅뱅이란 아이돌 그룹 출신이기 때문에 연기는 조승우에 밀릴 수 있다. 탑도 나름대로 캐릭터있는 얼굴이기 때문에, 이 부분은 나름 기대를 했다. 하지만 탑의 목소리톤은 타짜라는 나름 스마트해 보여야하는 캐릭터에는 적합하지 않은 듯 했다. 또한 연기 부분에서는 나쁘지 않다고는 생각되는데, 그럼에도 주인공의 캐릭터가 빈약해 보..

관심사/영 화 2014.10.28

타워디펜스 추천(Startemple TD) 플래시게임

스타크래프 유즈맵 시절부터 타워디펜스에 꽂혀 많은 종류의 타워디펜스를 해왔습니다. 타워디펜스는 유즈맵 초창기 시절부터 쭉 인기있어 왔던 형태의 게임으로 현재까지도 디펜스 형태의 게임을 변형하여 새로운 장르의 게임이 많이 나왔습니다. 제 생각은 타워디펜스는 모든 디펜스 게임의 기본 형태라 생각됩니다. 현재 많은 종류의 디펜스 게임이 플래시로 만들어 지지만 딱히 구미에 당기는 게임이 없던 중 꽤 괜찮은 디펜스 게임을 발견해서 소개하려 합니다. 이름은 Startemple TD 입니다. 아래 주소로 접속하면 되지만, 기본적인 영어만 알면 게임을 할 수 있습니다. http://startempletd.com/ 이 게임의 특징은 로그인을 하여 자신의 기록을 다른 사람과 비교 경쟁할 수 있습니다. 또한 미션을 수행하면..

관심사/기타 2014.09.26
반응형