[C & C++] rand()와 srand()함수

2019. 11. 5. 00:52· # Language/[ C & C++ ]
반응형

안녕하세요. 허언증입니다.

 

 

Rand() 함수는 난수를 발생 시킵니다.

난수는  seed 값에 따라 난수 값을 출력합니다 

기본 seed값은 1로 설정되어 있고

1을 바꾸면 다른 기준으로 난수를 발생합니다.

 

다시 실행을 하더라도 저 값을 항상 출력합니다.

41

18467

6334

26500

19169

seed가 1기 때문이죠

 


 

그럼 이번엔 srand()함수를 이용해 seed값을 바꾸도록 하겠습니다.

*time() 함수를 이용해서 시간으로 랜덤하게 부여함.

 

srand() 함수로 난수를 지정 후 출력을 하면 고정값이 아닌 

매번 다른 값으로 출력 하는걸 볼 수 있습니다.

 

DEV++ 인경우 #include<stdlib.h>를 적어 줘야합니다.

비쥬얼스튜디오는 생략 가능하고  

 

time()함수를 사용하기위해 

#include<ctime> 추가 해줘야 합니다.

 

 

 

 

srand() 범위

위 예제는 rand() 함수를 이용해서 특정 범위를 지정 안 했지만 

따로 지정도 가능하다 바로 예시로!!

 

 

ex)

rand() % 5 라고 가정을 하면

rand()는 0 ~ 32367사이의 값이 랜덤으로 출력된다.

이때 % 5이기 때문에 

0~32367 범위중 5로 나눈 나머지를 출력하게 되는데 

결국 출력이 되는 범위는 0~4로 모든수가 나눠서 나머지로 출력이 된다.

 

만약 0을 출력하고 싶지 않다면 

rand() % 5 +1 를 할 경우

rand() % 5 => 0~4 범위 하지만 +1를 했기때문에

범위는 1~5로 수정이 된다.

 

이렇게 자신이 특정 범위를 지정이 가능하다

 

예제.

rand() % 7 +1 =?

 

 

 

 

 


 

rand() / srand() 함수 예제

 

https://min-310.tistory.com/70

 

[C & C++] 로또 번호 추천 프로그램 (feat. rand()와 srand()함수 예제)

안녕하세요 허언증입니다! Point. 번호 중복해제 그냥 출력을 하면 랜덤함수로 중복이 발생하기 때문에 Shuffle을 생각해서 중복을 제거 ★결과★

min-310.tistory.com

 

 

 

 

 

 

 

반응형

'# Language > [ C & C++ ]' 카테고리의 다른 글

[C & C++] inet_addr(), inet_aton(), inet_ntoa()  (0) 2019.12.03
[C & C++] 포인터 정리  (0) 2019.11.05
[C & C++] STL 반복자 iterator  (0) 2019.11.05
[C & C++] enum 열거형  (0) 2019.11.05
[C & C++] 참조자(Reference)와 포인터(Pointer)의 차이  (0) 2019.10.30
'# Language/[ C & C++ ]' 카테고리의 다른 글
  • [C & C++] 포인터 정리
  • [C & C++] STL 반복자 iterator
  • [C & C++] enum 열거형
  • [C & C++] 참조자(Reference)와 포인터(Pointer)의 차이
이론과 실습 사이
이론과 실습 사이
Job : 네트워크, 가상화, Private Cloud / Hobby : 사진,재테크(주식)
이론과 실습 사이Job : 네트워크, 가상화, Private Cloud / Hobby : 사진,재테크(주식)
이론과 실습 사이
이론과 실습 사이
이론과 실습 사이
전체
오늘
어제
  • KyungKing's Story
    • # OS
      • [ Linux ]
      • [ Windows ]
    • # Language
      • [ Python ]
      • [ C & C++ ]
      • [ Javascript ]
      • [ Shell Script ]
    • # Network
      • [ GNS3 ]
      • [ Coding ]
      • [ 용어 정리 ]
      • [ Network ]
      • [ Packet Tracer ]
    • # VMware
      • [ VDI 관리서버 설치 ]
      • [ vSphere ]
      • [ vCenter ]
      • [ Horizon ]
      • [ Aria ]
      • [ vGPU ]
      • [ Ect ]
    • # Script
    • # Docker
      • [ Docker 이론 ]
      • [ Docker 실습 ]
    • # Cloud
      • [ Cloud ]
      • [ AWS Cloud ]
    • # NIVIDIA
      • [ 실습 ]
    • # Storage
      • [ TrueNas 실습 ]
    • # 알고리즘 문제풀이&연습
      • [ Algorithm ]
      • [ BaekJoon ]
      • [ CodeUp -기초 100제 ]
    • # Study
      • [ 영어 공부 ]
      • [ # TroubleShooting ]
      • [ 이것이 리눅스다 ]
      • [ Big Network Design ]
      • [ 시스코 아카데미 패킷트레이서 ]
      • [ 성공과 실패를 결정하는 1%의 네트워크원리 ]
    • # 결과물
      • [ 개인 프로젝트 ]
      • [ 자격증 & 수료 ]
      • [ 프로그램 완성작품 ]
    • # 관심 분야
      • [ 주식 투자 ]
      • [ Machine learning ]
    • # 개인기록 및 창고
      • [ 유용한 정보Tips ]

블로그 메뉴

  • KyungKing's GitHub
  • KyungKing's 투자 이야기
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 허언증
  • 알고리즘
  • C언어
  • ESXi
  • c++
  • 네트워크
  • cisco
  • Linux
  • Packet Tracer
  • 코딩
  • socket
  • network
  • 공부
  • vCenter
  • 백준
  • Router
  • VMware
  • CodeUp
  • 이것이리눅스다
  • Algorithm

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
이론과 실습 사이
[C & C++] rand()와 srand()함수
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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