일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- cmd인스톨러설치
- cloudready OS
- 영상배속
- CentOS
- Linux
- putty
- ventoy 사용법
- YCSB
- Dell Venue 8 Pro
- docker container backup
- 컨테이너 복원
- cmd로msi파일설치
- 웹영상배속
- 컨테이너 백업
- VPN
- Oracle
- OTT셋톱박스
- ipvlan
- MySQL
- GUI 또는 CLI전환
- 시스템예약종료
- docker container restore
- 인강배속
- cubrid
- 딜라이브플러스h3
- #Oracle
- Windows
- CentOS7
- 파이썬 스톱워치
- docker
- Today
- Total
일단은 프로그래머 나부랭이
랜덤 함수에 대하여 본문
프로그래밍을 하다보면 랜덤 함수를 통해 발생된 임의의 값을 이용할 때가 있다.
그런데, '컴퓨터는 논리적인 사고 밖에 하지 못하는데, 난수를 어떻게 발생시킬까?'하는 의문이 생길수도 있는데, 사실 우리가 사용하는 랜덤 함수도 누군가에 의해 설계된 로직(프로그램)이다.
랜덤 함수는 프로그래밍 언어마다 다른데, Java의 경우엔, 1/1000초(혹은 백만분의 1이라고 들은것 같다.) 이하의 값을 가져와서 임의의 값으로 표기 한다고한다. C언어의 경우엔 얼핏 듣기로는 CPU에 정의된 난수 수순에 따라서 정해진 값을 가져오는데, 그 값에 어떠한 변칙적인 값(Seed 값)을 줘서, 그것으로 임의의 값을 얻어낸다고 한다.
(C언어의 seed값도 시간을 이용하며, 실제로, C언어를 프로그래밍할 때 별 생각없이 랜덤함수를 사용해서 코딩하면 매번 정해진 순서대로 값이 나오곤 했던 기억이 있다.)
이러다보니 랜덤함수로 발생한 임의의 값에 대하여 추측이 가능할 수도 있다.
무슨 말이냐면, 만약, Seed값을 계속해서 같은 값으로 지정해줄수만 있다면, 똑같은 패턴의 값이 출력될 수 있다는 것이다.(어떤 로직이든 동일한 값을 입력하면, 동일한 결과가 나오는건 당연한 일이다. 중학교 수학에서 배운 함수를 생각해보자.)
물론, 프로그래머들은 최대한 자연스럽게 보이기 위하여 프로그래밍을 하지만, 실수가 됐든, 우연이 됐든 이러한 것을 추측할 수 있게 되는 경우가 충분히 발생할 수도 있다.(한, 백만분의 1의 확률로..?)
때문에 최대한 자연스러운(?) 임의의 값을 출력하기 위하여 많은 사람들이 노력하는데,
'기타등등' 카테고리의 다른 글
딜라이브 플러스 h3 사용후기 (0) | 2020.02.11 |
---|---|
Tmax OS를 설치해보고 있습니다. (0) | 2019.12.04 |
구글에서 진행중인 인터넷 풍선 프로젝트! (0) | 2017.02.17 |
무료 도메인 등록 (0) | 2016.09.06 |
7zip을 이용한 자동압축 배치 프로그램 소스 (0) | 2016.07.28 |