본문 바로가기
기초 용어

random 랜덤

by tokkiC 2022. 5. 19.

예측 불가능한 값을 랜덤 이라고 한다

게임 속의 뽑기 뿐 아니라 보안에서도 본인 인증을 위해서 OTP 등의 형식으로도 이용되고 있다

랜덤을 만드는 방법에 대해 사람들이 연구하다가 찾은 방법 중 하나로

미시적 자연 현상을 관찰하는 것을 예로 들 수 있는데,

양자의 세계에서는 모든 것이 확률적으로 일어난다고 보기때문에 (양자역학) 

양자를 관측하여 그 패턴을 수치화하면 완벽히 랜덤한 수를 얻을 수 있다...

양자 요동. 정말 랜덤하다! 이미지 출처 : https://en.wikipedia.org/wiki/Quantum_fluctuation

근데 저런걸 관측한다니 측정이 쉽지 않고 그 비용과 노력의 소모가 크다.

난 고작 랜덤 뽑기 프로그램을 만들고 싶을뿐인데... 양자를 관측해야 하는 프로그램이나 장치가 필요하다니

배보다 배꼽이 더 크지 않은가...

그래서 랜덤성이 좀 떨어지지만 사람들이 생각해 낸것이 쉽게 측정 가능한 자연 환경을 측정하는 법도 있다

자연의 소리나 노이즈 등을 분석하여 수치화하면 보통은 예측불가하니 꽤나 랜덤하다고 말할수 있기 때문에!

하지만 이것도 따로 측정장치나 노력이 크니 쉽게 찾을 수 있는 환경변수인 시간을 가지고

랜덤성을 만드는 방법이 자주 사용된다. 시간은 컴퓨터도 자체적으로 측정가능한 환경이니까!

모든 컴퓨터가 가지는 유닉스 시간을 밀리초(ms) 단위로 측정하여 

랜덤에서 중요한 초기값인 시드(seed)라는 개념으로 사용한다

seed 씨앗. "시드머니가 있어야지 돈을 모으지..." 라고 할 때의 그 시드가 맞다

저 시드를 여러가지 복잡한 방식으로 굴려서 감히 예상할 엄두도 못내도록

만드는 방법이 프로그래밍에서 자주 쓰이는 랜덤 만드는 방식이다

하지만 어려워서 감히 예상 못하는거지 시드만 알아 낼 수 있으면 랜덤성이 훼손될 수 있기에

완전한 랜덤이라고 보기엔 힘들다

이처럼 자연에서 엔트로피가 높은 일들을 측정하는 것으로 얻을 수 있는

진짜 랜덤 true random 과

임의로 시드를 정하고 복잡한 계산 과정을 통하고 섞어서 만들어내는, 그러나 완벽하다곤 보기 힘든

가짜 랜덤 pesudo random 이 있다.  (pesudo : 가짜의)

랜덤 프로그램을 만들때는 비용이 적은 가짜 랜덤을 사용하는 것이 합리적이겠다

과학 발전으로 모든걸 예측 가능해지면 그땐 랜덤이란게 존재하지 않을지도 몰라 이미지 출처 : https://gfycat.com/ko/equatorialmeaslychicken

댓글