분류 전체보기
-
#include using namespace std; // 오늘의 주제: 포인터 vs 배열 void TestFunc(char param[]) // 배열을 함수인자로 넘기면 알아서 포인터로 치환한다. { // 어셈블리를 까 보면 결국 포인터로 전달 param[0] = 'A'; } int main() { // 문자열 == 문자의 배열 cout
[언리얼 MMORPG pt1] 포인터 vs 배열#include using namespace std; // 오늘의 주제: 포인터 vs 배열 void TestFunc(char param[]) // 배열을 함수인자로 넘기면 알아서 포인터로 치환한다. { // 어셈블리를 까 보면 결국 포인터로 전달 param[0] = 'A'; } int main() { // 문자열 == 문자의 배열 cout
2023.10.26 -
#include using namespace std; struct StatInfo { int hp = 0xAAAAAAAA; int attack = 0xBBBBBBBB; int defence = 0xDDDDDDDD; }; int main() { // TYPE 이름[개수]; // 배열의 크기는 상수여야 함 (VC 컴파일러 기준, gcc는 통과함) const int MONSTER_COUNT = 10; StatInfo monsters[MONSTER_COUNT]; // 여태껏 변수들의 [이름]은 바구니의 이름이었음 // 배열은 [이름] 조금 다르게 동작한다. StatInfo players[10]; // players = monsters; // error // 그럼 배열의 이름은 뭐지? // 포인터다. 즉, 배열의..
[언리얼 MMORPG pt1] 배열 기초#include using namespace std; struct StatInfo { int hp = 0xAAAAAAAA; int attack = 0xBBBBBBBB; int defence = 0xDDDDDDDD; }; int main() { // TYPE 이름[개수]; // 배열의 크기는 상수여야 함 (VC 컴파일러 기준, gcc는 통과함) const int MONSTER_COUNT = 10; StatInfo monsters[MONSTER_COUNT]; // 여태껏 변수들의 [이름]은 바구니의 이름이었음 // 배열은 [이름] 조금 다르게 동작한다. StatInfo players[10]; // players = monsters; // error // 그럼 배열의 이름은 뭐지? // 포인터다. 즉, 배열의..
2023.10.26 -
포인터 vs 참조 -성능: 똑같음 편의성: 참조 승! 1. 편의성 관련 편의성이 좋다는게 꼭 장점만은 아니다 포인터는 주소를 넘기니 확실하게 원본을 넘긴다는 힌트를 줄 수 있는데, 참조는 자연스럽게 모르고 지나칠 수도 있음 StatInfo info; // 포인터 PrintInfo(&info); // 참조 PrintInfo(info); 만약 신입이 와서 info.hp = 10000; 이런식으로 조져버릴수도 있다. -> const 사용해서 방지 const 사용 별(*)기준, 앞에다 붙이는것과 뒤에 붙이는게 다름 별 뒤에 붙인다면? StatInfo* const info info = &globalInfo; 가 막힘 info라는 바구니의 내용물[주소]을 바꾸지 못하게 info 주소값을 갖는 바구니 -> 주소값이 ..
[언리얼 MMORPG pt1] 포인터 vs 참조포인터 vs 참조 -성능: 똑같음 편의성: 참조 승! 1. 편의성 관련 편의성이 좋다는게 꼭 장점만은 아니다 포인터는 주소를 넘기니 확실하게 원본을 넘긴다는 힌트를 줄 수 있는데, 참조는 자연스럽게 모르고 지나칠 수도 있음 StatInfo info; // 포인터 PrintInfo(&info); // 참조 PrintInfo(info); 만약 신입이 와서 info.hp = 10000; 이런식으로 조져버릴수도 있다. -> const 사용해서 방지 const 사용 별(*)기준, 앞에다 붙이는것과 뒤에 붙이는게 다름 별 뒤에 붙인다면? StatInfo* const info info = &globalInfo; 가 막힘 info라는 바구니의 내용물[주소]을 바꾸지 못하게 info 주소값을 갖는 바구니 -> 주소값이 ..
2023.10.25 -
포인터 기초 #include using namespace std; // 오늘의 주제: 포인터 void SetHP(int* hp) { *hp = 100; } int main() { int number = 1; int hp = 1; SetHP(&hp); // 포인터로 주소를 넘겨줘야 값을 변경가능 // TYPE* 변수명; // 일단 2가지 요소 // - TYPE // - * // 바구니는 바구니인데... // [주소를 저장하는 바구니다!] // 참고) 포인터라는 바구니는 4바이트(32비트) 또는 8바이트(64비트) 크기 고정이다. int* ptr = &number; // 근데 남의 주소를 갖고 뭘 하라는거지? // 추가 문법: [주소를 저장하는 바구니]가 가리키는 주소로 가서 무엇인가를 해라! // *변수이..
[언리얼 MMORPG pt1] 포인터포인터 기초 #include using namespace std; // 오늘의 주제: 포인터 void SetHP(int* hp) { *hp = 100; } int main() { int number = 1; int hp = 1; SetHP(&hp); // 포인터로 주소를 넘겨줘야 값을 변경가능 // TYPE* 변수명; // 일단 2가지 요소 // - TYPE // - * // 바구니는 바구니인데... // [주소를 저장하는 바구니다!] // 참고) 포인터라는 바구니는 4바이트(32비트) 또는 8바이트(64비트) 크기 고정이다. int* ptr = &number; // 근데 남의 주소를 갖고 뭘 하라는거지? // 추가 문법: [주소를 저장하는 바구니]가 가리키는 주소로 가서 무엇인가를 해라! // *변수이..
2023.10.24 -
학습법 개관: 에러 정정 기법 손실함수 기울기 강하 기법 기울기 강하 기법의 신경망 학습 적용 개관 2. 단계층 신경망 학습: 델타 규칙 가중치에 대한 손실함수의 편미분 델타 규칙의 이해 3. 다계층 신경망 학습: 역전파 학습 알고리즘 역전파 학습 개념 합성함수의 미분 노드 에러 기울기 가중치 에러 기울기 오류 역전파 알고리즘 가중치 갱신 오류 역전파 알고리즘
[AI 입문] 신경망 학습학습법 개관: 에러 정정 기법 손실함수 기울기 강하 기법 기울기 강하 기법의 신경망 학습 적용 개관 2. 단계층 신경망 학습: 델타 규칙 가중치에 대한 손실함수의 편미분 델타 규칙의 이해 3. 다계층 신경망 학습: 역전파 학습 알고리즘 역전파 학습 개념 합성함수의 미분 노드 에러 기울기 가중치 에러 기울기 오류 역전파 알고리즘 가중치 갱신 오류 역전파 알고리즘
2023.10.23 -
1. FNN의 구조 이해 FNN 구조 개요 FNN 동작 개요 가중치 행렬 표기 방식 가중치 행렬 사례 2. FNN의 계층 뉴럴 계층(Neural Layer) 함수 계층 3. 순방향 처리 (추론) FNN 관련 명칭 및 표기 단일 데이터 처리 배치(batch) 처리 4. 다층 신경망 활용 회귀 이진 분류 다중 분류
[AI 입문] 다층신경망(FNN)의 이해1. FNN의 구조 이해 FNN 구조 개요 FNN 동작 개요 가중치 행렬 표기 방식 가중치 행렬 사례 2. FNN의 계층 뉴럴 계층(Neural Layer) 함수 계층 3. 순방향 처리 (추론) FNN 관련 명칭 및 표기 단일 데이터 처리 배치(batch) 처리 4. 다층 신경망 활용 회귀 이진 분류 다중 분류
2023.10.23