C++기초

22년 3월 15일(3) - random

2022. 3. 17. 17:01

#include <iostream>
#include <time.h>
//TIP)C언어 적부터 쓰이던건 .h가 붙는다. C++ 이후에 만들어진 건 안 붙음.

int main()
{
/*
srand: C++에서 제공하는 난수 테이블이다.
이 기능을 이용해서 난수 테이블을 준비한다.
매개변수로 unsigned int값을 받는다. 시드라고 함.
여러 개의 난수 테이블이 존재하고, 
시드 값에 해당하는 난수 테이블의 난수값을 뽑아오는 방식임.

난수를 뽑아 올 떄는 rand()를 사용한다.
*/
system("cls"); //이 줄을 넣어주면 콘솔창을 깨끗이 지워준다.

//srand(10);
//

//for (int i = 0; i < 10; ++i)
//{
// std::cout << rand() << std::endl;
//}





/*
* 출력값
71
16899
3272
13694
13697
18296
6722
3012
11726
1899
껐다 켜도 계속 동일한 값이 출력된다. 시드가 동일하기 때문
-> 그러므로 시드값을 계속 바꿔 주어야 어느 정도 예측 불가능한 난수를 뽑을 수 있다.
-> 컴퓨터에서 계속 바뀌는 값을 넣어주면 되는데, 그 시드 값으로 시간을 넣어주면 효과적이다.
*/
//time(0): 현재 시간을 초단위로 환산하여 얻어온다.
//time(0)값음 int 값인데 srand는 unsigned int를 받으므로 형변환을 해 주어야 한다.
std::cout << time(0) << std::endl;
srand((unsigned int)time(0));

for (int i = 0; i < 10; ++i)
{
std::cout << rand() << std::endl;
}

//첫 번째 얻어오는 난수는 값이 Seed에 따라 조금 씩 증가하게 되어있어서 하나는 걸러내준다.
//실무에서 사용하기에는 조금 무리가 있으나
//포트폴리오 수준에서는 충분히 활용할 수 있음.


//TIP)일정 범위 안의 난수를 뽑고 싶을 때는 나머지 연산자를 사용하면 된다.
//0~100까지의 숫자를 뽑고 싶을 떄
std::cout << rand() % 101 << std::endl;

//TIP2)100~150 사이의 값을 뽑고 싶을 때
//rand() % (최대 - 최소 + 1 ) + 최소
std::cout << rand() % (150 - 100 + 1) + 100 << std::endl;

return 0;
}

'C++기초' 카테고리의 다른 글

22년 3월 16일(2) - array  (0) 2022.03.17
22년 3월 16일(1) - 가위바위보 구현하기  (0) 2022.03.17
22년 3월 15일(2) - while  (0) 2022.03.17
22년 3월 15일(1) - for  (0) 2022.03.17
22년 3월 15일  (0) 2022.03.17
'C++기초' 카테고리의 다른 글
  • 22년 3월 16일(2) - array
  • 22년 3월 16일(1) - 가위바위보 구현하기
  • 22년 3월 15일(2) - while
  • 22년 3월 15일(1) - for
hyrule
hyrule
hyrule
C++ 프로그래밍 공부
hyrule
전체
오늘
어제
  • 분류 전체보기 (205)
    • C++기초 (50)
    • WIN32API FrameWork (109)
      • 한단계씩 직접 구현 (82)
      • 원본 (15)
      • 코드별 설명 개별저장(검색용) (12)
    • 자습 (21)
    • C++ TIPS (11)
    • 연습 노트 (3)
    • ETC (6)
    • DX2D StarCraft 모작 (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • hello
  • Windows 11
  • 스타크래프트
  • Tistory
  • C++
  • notion

최근 댓글

최근 글

hELLO · Designed By 정상우.
hyrule
22년 3월 15일(3) - random
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.