알고리즘이란 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합을 뜻합니다.
어떤 방식들이 있는지 한 번 살펴보겠습니다.
탐색 알고리즘
1. 선형 탐색 : x와 a1 비교, x!=a1 이면 a2와 비교... 순차적으로 탐색
2. 이진 탐색 : 오름차순으로 비교 되어있는 리스트를 둘로 쪼개 첫리스트의 마지막 항과 비교... 계속 둘로 나눠서 비교
정렬 알고리즘
1. 버블정렬 : 배열 앞뒤를 비교하고 작은 수를 앞으로 보내고, 반복해서 정렬
2. 선택정렬 : 기준값을 선택. 리스트 중 최소값을 찾아서 기준값과 교환
3. 삽입정렬 : 새로운 리스트에 정렬할 리스트의 값을 차례대로 비교 정렬 후 삽입
욕심쟁이 알고리즘 (Greedy Method)
각 단계에서 가장 최선일 것 같은 것을 선택하는 알고리즘
비지루프
오로지 빙글빙글 돌면서 시간을 때우는 방법
-> CPU가동 되므로 좋지 않다.
차라리 할 일을 없을때 CPU를 재워라
비율에 따른 난수
문제1) 1, 2, 3 의 난수 확률은 10%, 20%, 70%면
100까지의 난수발생 후 1-10은 1, 11-30은 2, 31-100은 3 -> 가중치를 두는 간단한 방법
문제2) 0 또는 1 의 난수를 발생하는 식을 만들되 0과 1의 발생 비율이 5:8의 비율이 되도록 하라
(((int)(Math.random() * 13)/8) - 1)*-1
(int)((Math.random()*(x1+x2))/x2)
n = Random().nextInt(5 + 8) / 8; // 8 : 5 의 발생 빈도
n = 1 - Random().nextInt(5 + 8) / 8; // 5 : 8 의 발생 빈도
반응형
'컴퓨터공학 > 컴퓨터일반' 카테고리의 다른 글
| 게임 알고리즘 (레벨업, 데미지, 피해량) (0) | 2021.02.01 |
|---|---|
| 게임 프로그래밍 (멀티플레이, 게임서버, 레벨디자인) (2) | 2021.01.31 |
| 게임 기획 | 구상과 디자인 (0) | 2021.01.11 |
| 압축 파일의 종류 (0) | 2020.09.21 |
| MP3Juices.cc 광고 차단방법 (0) | 2020.08.27 |
| 딥러닝과 머신 러닝 개요 (0) | 2020.08.26 |
| 동영상 포맷과 코덱 (0) | 2020.03.28 |
| 컴파일러 | 빌드 컴파일 링크 (0) | 2019.10.17 |
댓글