LeetCode470이 - Rand7를 사용 Rand10 ()를 구현 () - 중간 (파이썬)

함수 주어  rand7 1~7 범위의 균일 한 랜덤 정수를 생성하는 기능 물품  rand10 (10)까지의 범위에서 균일 한 임의의 정수를 생성한다.

시스템의 사용하지 마십시오  Math.random().

 

예 1 :

입력 : 1 
출력 : [7]

예 2 :

입력 : 2 
출력 : [8,4]

예 3 :

입력 : 3 
출력 : [8,1,10]

사고 : 질문의 의미하는 rand7으로, 비교적 간단 ()을 달성하는 rand10 (). 생산 rand7는 () () 우리는이 희망을 1-7 모든 정수, rand10을 모든 정수 1-10 것을. 우리는 (), rand7 한 번 호출하면 한 가지, 분명
우리는 8,9,10 세 자리 숫자를 생성 할 수 없습니다. 그래서 분명히 우리는 적어도 두 번 호출해야합니다. 전화를 2 번 생성됩니다 숫자의 범위는하지 1-14. (또한보다 곱셈) 1-49 우리는이 시간에 41-49. 그래서 폐기 할 수 있다면 것을 참고 1-49입니다
우리가이 1-40하고 생성 할 수 있습니다 균일 한 임의의 대상이 요구 사항. 피사체 출력에서 1-40 전이를 생성하는 데 필요한 경우에 따라서,이 생성 된 난수 그렇지 않음 10 더한 = 0 내지 10, 40 % 이후 나머지 복용이다.
클래스 해결책 :
     DEF rand10 (자기)
         "" " 
        : RTYPE : INT 
        " "" 
        랜드 = 41 동안 랜드> = 41 : 
            랜드 = (rand7 () - 1) * 7 + rand7 () 리턴 랜드 10 % +1
        
        
            
        

추천

출처www.cnblogs.com/sky37/p/12244492.html