rand(5)로 rand(7) 구현하기!?

오늘 조엘 스폴스키"Learning from StackOverflow.com" 구글테크톡스 비디오를 보다가, 예전에 지인이 물어봤던 퀴즈 문제를 다시 만났습니다. 일종의 수학 문제인데, 조엘이 인터뷰 질문으로 자주 쓴다고 하는군요.

그림출처: http://reflectionof.me/josh-sommers

예전에 나름의 방안을 고안하여 알려줬었는데, 기억이 안나더군요. (지인이 맞는 해답인지는 알려주지 않았었습니다.)

퇴근길에 심심하여 다시 고민해보았습니다. 근데 문제를 정확히 기억 못해 거꾸로 rand(7)로 rand(5)를 구현하는 것에 대해 고민하였습니다. 일곱가지의 경우의 수를 공평하게(같은 확률로) 리턴하는 함수가 있다고 할 때, 그를 가지고 다섯가지 경우의 수를 공평하게 리턴하는 함수를 구현해보라는 문제입니다. (물론, 원 문제는 이 반대로)

이하에 저의 해답과 그에 이른 논리적 흐름이 나옵니다. 따라서, 직접 풀어보고 싶으신 분은 나중에 읽어보시길 권합니다. 물론, 저의 해답이 최적의 답안인지는 잘 모르겠습니다.

더보기


크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 2

top