본문 바로가기

전체 글4

통계량 확률 변수(Random Variable) X, Y "함수" Sample Space를 실수로 mapping 확률 분포 함수 확률 변수가 가질 수 있는 값에 대한 확률을 모델링 discrete pmf $P(X=x)=f(x)$ cont. pdf $P(a\leq{X}\leq{b})=\int_{a}^{b}f(x)dx$ 기댓값 $\mu$, $E[X]$ 분포의 무게중심 discrete cont. variance $\sigma^2$, $V[X]$ 산포도를 나타냄 '$\mu$로부터 얼마나 변동적인가' $E[(X-\mu)^2]$ std $\sigma$, $S(X)$ 분산은 단위 또한 제곱이 돼버림 ($m\to{m^2}$) X와 단위, 스케일을 맞춰주기 위해 사용 p-quantile(분위수) 어느 분포의 0.2 분위수가 7.. 2020. 10. 30.
[C/C++] Implicit Conversions en.cppreference.com/w/c/language/conversion Implicit conversions - cppreference.com When an expression is used in the context where a value of a different type is expected, conversion may occur: int n = 1L; // expression 1L has type long, int is expected n = 2.1; // expression 2.1 has type double, int is expected char *p = malloc(10); // en.cppreference.com 서로 타입이 다른 변수끼리 연산, 대입, 호출, Casting이 이뤄.. 2020. 10. 7.
Endianness 16진수 0x12345678을 저장하기 위해서는 4byte의 메모리 공간이 필요하다. 실제 메모리에는 이 값이 어떻게 저장될까? 컴퓨터 시스템 마다 차이가 있는데 크게 Little Endian과 Big Endian Mode가 있다. (+Middle Endian) Little Endian은 인텔(x86)에서, Big Endian은 모토로라에서 사용했던 방식이다. Little Endian은 높은 자리 수를 낮은 주소에, 낮은 자리 수를 높은 주소에 저장하고 Big Endian은 낮은 자리 수는 낮은 주소에, 높은 자리 수는 높은 주소에 저장한다. 0x12345678을 0x00001000번지에 저장하는 경우는 다음과 같다. *(unsigned int*)(0x00001000) = 0x12345678; addre.. 2020. 10. 4.
Memory Pool을 이용한 Linked List 구현 보통 LL(Linked List)를 처음 배울 때, 동적할당(dynamic allocation, new 또는 malloc을 이용)을 이용하여 새로운 노드를 만들고 삭제 시 free, delete를 사용하도록 배운다. 의미 상 전혀 문제가 없는 방식이지만, 메모리 시스템 관점에서 보면 새로운 메모리 영역을 할당하고 해제하는 횟수가 많아지면 메모리 파편화(Fregmentation)가 발생할 확률이 높다. 결과적으로, 속도면에서도 손해를 보게 된다. 이를 보완할 수 있는 방법이 Memory Pool을 이용한 LL구현이다. 정적배열을 미리 크게 잡아놓고 노드 생성, 삭제 시에는 head만을 이동시키는 방식이다. 정적으로 미리 배열을 잡아놓았으므로 노드에 메모리를 할당하는 시간을 줄일 수 있다. 또한, head만.. 2020. 9. 26.