[게임수학] 행렬: 가상 세계의 변환 도구
·
책/이득우의 게임 수학
선형성: 예측 가능한 비례 관계벡터와 스칼라 곱셈으로 생성된 벡터는 벡터와 평행한 원점을 지나는 일직선 상에 위치합니다. 이러한 직선의 형태를 띠는 성질을 선형성(Linearity)이라고 합니다.수학에서는 선형성을 가법성(Additivity)과 1차 동차성(Homogeneity of degree1) 두 가지 조건을 모두 만족하는 함수의 성질로 정의합니다.가법성 : $f(x1+x2)=f(x1)+f(x2)$1차 동차성 : $f(k·x)=k·f(x)$ 1. 선형 함수원점을 지나는 직선 함수 f(x) = ax-  가법성 검증f(x1 + x2) = a(x1 + x2) //좌변f(x1) + f(x2) = ax1 + ax2 //우변-  1차 동차성 검증f(kx) = a(kx) //좌변kf(x) = k(..
[게임수학] 삼각함수: 회전을 위한 수학
·
책/이득우의 게임 수학
회전은 원의 궤적을 따라 이동하는 움직임이기 때문에 이를 이해하려면 원과 밀접하게 연결되어있는 삼각함수를 알아야 합니다. 삼각함수한 각이 직각(90도)인 직각삼각형을 이루는 세 변은 각 위치에 따라 빗변, 밑변, 높이 라고 부릅니다.직각삼각형을 구성하는 세 변에서 두 변을 뽑아 각각의 비례관계를 나타낸 것은 삼각비(Trigonometric Ratio)라고 합니다. 사인(Sine), 코사인(Cosine), 탄젠트(Tangent) 세가지가 대표적sinθ = b/ccosθ = a/ctanθ = b/a직각삼각형을 데카르트 좌표계 상에 배치하고 사잇각의 범위를 실수 전체로 확장한 대응 관계를 삼각함수(Trigonometric function)라고 합니다.$r^2(cos^2θ+sin^2θ)=r^2$$∴cos^2θ+..
[내일배움캠프 Day9] 포인터
·
내일배움캠프/TIL
1. 메모리와 변수메모리는 프로그램이 실행될 때 사용하는 RAM(Random Access Memory)의 한 부분입니다. 메모리는 여러 “칸”으로 이루어져 있고, 각 칸은 고유한 주소를 가집니다.변수는 메모리의 특정 칸에 데이터를 저장하는 “이름표” 역할을 합니다.int a = 10;변수 a는 메모리의 특정 주소를 차지하고, 값 10을 저장합니다.a의 주소는 &a로 접근할 수 있습니다. 2. 포인터포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 즉, 포인터는 메모리의 “위치”를 가리키는 역할을 합니다.포인터 사용의 두 가지 핵심 연산은 다음과 같습니다.참조(&): 변수의 메모리 주소를 얻음.역참조(*): 포인터가 가리키는 주소에 저장된 값을 얻음.// 'int' 타입의 데이터를 가리킬 포인터in..
[내일배움캠프 Day8] C++ 과제 진행
·
내일배움캠프/TIL
[1번 과제] CH2 간단한 프로그래밍 구현 #include using namespace std;// 배열 원소들의 합을 계산하는 함수int CalSum(int arr[], int size){ int sum = 0; for (int i = 0; i (sum) / size;}// 배열을 오름차순으로 정렬하는 함수void SortAscending(int arr[], int size){ for (int i = 0; i arr[j]) swap(arr[i], arr[j]); } }}// 배열을 내림차순으로 정렬하는 함수void SortDescending(int arr[], int size){ for (int i = 0; i > num[i]; int sum = CalS..
완전 탐색(Brute Force)
·
알고리즘
‘무식하게 푼다(brute-force)’ 는 컴퓨터의 빠른 계산 능력을 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 의미합니다.이렇게 가능한 방법을 전부 만들어 보는 알고리즘을 완전 탐색이라고 부릅니다. 재귀 호출재귀 함수(recursive function)란 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수를 가리킵니다.재귀 호출의 기초적인 성질을 이해하기 위해 가장 간단한 반복문을 재귀 함수로 바꿔 구현해 봅시다.int sum(int n){ // 반복함수 int ret=0; for(int i=1;i모든 재귀 함수는 ‘더 이상 쪼개지지 않는’ 최소한의 작업에 도달했을 때 답을 곧장 반환하는 조건문을 포함해야..
[내일배움캠프 Day7] Git
·
내일배움캠프/TIL
7일차 Git 특강과 관련된 전공 시간에 배웠던 내용을 추가로 정리하였습니다. Githttps://git-scm.com/ Git git-scm.comfast version control system분산 VCS - 팀 공유 작업에 최적화된 도구누가 언제 무엇을 수정하였는지 tracking - content (not file) oriented수정된 내용을 되돌릴 수 있음Local / Remote Repository Git은 어떤 점에서 분산 시스템이라고 하는가?중앙 버전 제어 시스템은 하나의 중앙 repository를 가지고 있으며, 각 사용자는 중앙 repository로부터 파일을 check out 하고 수정 후에 중앙 repo로 변경 사항을 제출합니다.반면에 Git에서는 각 사용자는 repository를..
[내일배움캠프 Day6] C++ 프로그래밍 기초
·
내일배움캠프/TIL
Hello, World 출력#include // 외부에 있는 파일을 가져오겠다는 의미using namespace std;// int는 함수 종료 시 어떤 타입을 반환할 건지 알려주는 부분int main() { // 프로그램의 시작점 cout  변수입력한 값을 담을 공간이 필요해 프로그래밍 언어는 변수라는 것을 제공합니다. 타입  표현하는 데이터 설명 int정수(양수,0,음수)소수점 Xfloat,double부동 소수소수점 O, 둘은 정밀도 차이char단일 문자작은 따옴표로 한 문자 표현bool논리값true 와 falsestring문자열쌍 따옴표로 문자열 표현, 헤더 필요unsigned양수음수 입력 불가, 양수 범위가 2배 계산기 구현#include using namespace std;int ma..
[알고리즘] 시간 복잡도
·
알고리즘
시간 복잡도시간 복잡도(time complexity)란 가장 널리 사용되는 알고리즘의 수행 시간 기준으로, 알고리즘이 실행되는 동안 수행하는 기본적인 연산의 수를 입력의 크기에 대한 함수로 표현한 것입니다.일반적으로 점근 표기법을 사용하여 시간 복잡도를 나타내며, O(⋯) 형태로 표기합니다. O(⋯) 안에는 입력 크기(n)에 따른 실행 횟수를 함수로 표현합니다.  O(1) n2) n3) 2n)  O(1): 상수 시간 복잡도입력 크기에 상관없이 일정한 시간이 걸리는 알고리즘예: 주로 수학 공식등을 이용해 답을 바로 계산해내는 문제O(log n): 로그 시간 복잡도입력 크기가 커질수록 실행 시간이 느리게 증가예: 이진 탐색(Binary Search)O(n): 선형 시간 복잡도입력 크기에 비례하여 실행 시간이..
[내일배움캠프 Day5] 콜리전 수정하기
·
내일배움캠프/TIL
'단순콜리전보기'를 하면 콜리전이 뜨는데 현재 아래까지 전부 콜리전이 되는 것을 볼 수 있습니다.콜리전 제거  -> 자동 컨벡스 콜리전 적용하기 를 한 뒤에 헐 개수를 늘리면 깔끔하게 바뀌는 것을 볼 수 있습니다.너무 많으면 연산량 많아지므로 최적화를 위해 적절히 필요한만큼 쓰면 됩니다. 추가로 '이득우의 게임 수학' 책을 읽고 정리하였습니다.https://dev0404.tistory.com/19 [게임수학] 벡터: 가상 공간의 탄생벡터(Vector)란 평면에서 시각적으로 의미 있는 물체를 생성하기 위해 평면을 구성하는 원소입니다. 데카르트 좌표계데카르트 좌표계(Cartesian coordinate syste) : 직선의 수 집합을 수직으로 배치하여dev0404.tistory.com
[게임수학] 벡터: 가상 공간의 탄생
·
책/이득우의 게임 수학
벡터(Vector)란 평면에서 시각적으로 의미 있는 물체를 생성하기 위해 평면을 구성하는 원소입니다. 데카르트 좌표계데카르트 좌표계(Cartesian coordinate syste) : 직선의 수 집합을 수직으로 배치하여 평면을 표기하는 방식데카르트 좌표계의 한 원소는 곱집합과 동일하게 순서쌍으로 표현하며 좌표(Coordinate)라고 부릅니다. (x, y) 벡터 공간과 벡터1. 스칼라와 벡터벡터 공간(Vector Space) : 두 개 이상의 실수를 곱 집합으로 묶어 형성된 집합벡터(Vector) : 벡터 공간의 원소좌표값으로 사용하는 x와 y를 실수로 규정하기보단 체의 구조를 가지는 집합, 즉 체집합의 원소로 규정합니다. 이렇게 체의 구조를 가지는 수 집합의 원소를 스칼라(Scalar)라고 부릅니다...