python 암산 게임 및 random () 함수 자체 알고리즘 작성

선형 동 여 법 을 활용 하여 의사 임 의 수 를 생 성 하 다. 
Xn + 1 ≡aXn + c (mod m)
선형 동 여 알고리즘 은 m, a, c 와 X0 네 개의 매개 변수 가 있 습 니 다. Xn + 1. 1. 1. 1. 1. 1. 1. 1. 1. aXn + c (mod m) 를 설치 하여 무 작위 수열 < Xn > 을 구 합 니 다. 이 서열 을 선형 동 여 서열 이 라 고 합 니 다.m, a, c 와 X0 을 각각 계수, 곱셈, 증 량 과 초기 값 이 라 고 부른다.선형 동 여 방법 은 속도 가 빠 르 기 때문에 곱셈 과 모 수 를 적당 하 게 선택 하면 난수 생산 기 를 평가 하 는 세 가지 준칙 을 만족 시 킬 수 있다. 1. 이 함 수 는 전체 주기의 생 성 함수 여야 한다.즉, 이 함 수 는 중복 되 기 전에 0 에서 m 사이 의 모든 수 를 만들어 야 한 다 는 것 이다.2. 발생 하 는 서열 은 무 작위 로 보 여야 한다.3. 이 함 수 는 32bit 산술 로 효율적으로 실현 해 야 한다.내 알고리즘 에서 a = 7 ^ 5;c=0;m=1; x0 은 시스템 시간 입 니 다.(x0=time.clock())
함수 작성: add () sub () rand () randchoice()  rand_randint()
암산 게임 테마 doprode ():
자동 생 성 1 - 99 이내 의 가감 법 그리고 세 번 의 기회 가 있 었 는데 도 답 을 잘못 주 고 정확 한 선택 은 계속 되 었 다.
쓸데없는 말 은 코드 가 많 지 않 습 니 다: (time 모듈 만 호출 하고 다른 모듈 은 모두 직접 작성 합 니 다)
import time
def add(a,b):
    return a+b
def sub(a,b):
    return a-b
def rand():
    rand_seed = time.clock()  #clock()                       
    rand_seed = round(((float(rand_seed) * 16807.0) % 1.0),3)
    return rand_seed   #  0-1               

def rand_choice(seq):
    i = int(rand() * len(seq))
    return seq[i]

def rand_randint(start,stop):
    s = stop - start #    
    i = int(s * rand()) + start  #    +   
    return i    #   strat-stop      

ops = {'+':add,'-':sub}
def doprode():
    #                
    op = rand_choice('+-') #     + -
    nums = [rand_randint(10,99) for i in range(2)]#    10-99      
    nums.sort(reverse=True)#              
    result = ops[op](*nums) #        resu
    pr = '%d %s %d = '%(nums[0],op,nums[1])
    for i in range(3):
        res = int(raw_input(pr))
        if res == result:
            print '    '
            break
        elif i == 2:
            print '     ',pr,result
        else:
            print '    '

def main():
    while True:
        doprode()
        if raw_input('play again ? y to continue:').strip()[0] not in 'Yy':
            break   #           ,     y,     
                    # strip()[0]                     
if __name__ == '__main__':
    main()

좋은 웹페이지 즐겨찾기