DEV/🤦 ALGORITHM

[TEST] Rand5() Using Rand7()

개발을 하게 되. 2022. 2. 18. 21:43

문제

Rand5 란 
1~5의 숫자를 랜덤으로 1개의 숫자를 뽑아주는 함수이고 

Rand7란
1~7의 숫자를 랜덤으로 1개의 숫자를 뽑아주는 함수일때,

Rand7함수를 Rand5함수를 이용해서 구현해라. 

아이디어

Rand7 이니깐 범위를 줄여서 만약에 5이하가 나오면 반환하고, 아니면 하지말라고 하면 된다. 

나의 답안

def Rand5():
    while(True):
        n = Rand7()
        if n <= 5:
            return n

그렇다면 반대라면 어떻게 구현할까? 

즉, Rand 5를 이용해서 Rand7 을 구할 수 있을까? 

대신, 확률이 같을 필요는 없다. 

아이디어

Rand5 () : 1 ~ 5 에서 나오는 숫자를 가공해서 만들어야한다.

 

Rand5() + Rand5() 의 최댓값은 10 

7을 초과할 경우에는 7로 나눈 나머지로 반환하도록하자. 

 def Rand7():
    while(True):
        n = Rand5() + Rand5()
        if n > 7 : 
            return n%7
        return n