python 난수 분포 random 테스트

2165 단어 python난수random
확률 문제 때문에 python 의 난수 분 포 를 테스트 해 야 합 니 다.평균(균일)분포 인지 정상(고 스)분포 인지.
테스트 코드 는 다음 과 같 습 니 다:

#! /usr/bin/env python
#coding=utf-8
 
 
# =================================
# Describe :     random     
# D&P Author By:          
# Create Date:      2017/10/07
# Modify Date:      2017/10/20
# (C) 2012-2017 All rights reserved
# =================================
 
 
import random
import time
 
def test_rnd():
  st_tm = time.time()
  j = 0
  num = 0
  the_list = [1, 2, 3, 4]
  #     
  temp_dic = {1: 0, 2: 0, 3: 0, 4: 0}
  while 1:
    x = random.choice(the_list)
    temp_dic[x] += 1
    j += 1
    #      
    if j >= 10000000:
      break
  ed_tm = time.time()
  print "Test random.choice()---------------------------:"
  print "loop num: ", j
  print "take time: ", ed_tm-st_tm
  print "temp_dic :", temp_dic
 
  print "Test random.randint()---------------------------:"
  st_tm = time.time()
  j = 0
  num = 0
  #     
  temp_dic = {1: 0, 2: 0, 3: 0, 4: 0}
  while 1:
    x = random.randint(1, 4)
    temp_dic[x] += 1
    j += 1
    #      
    if j >= 10000000:
      break
  ed_tm = time.time()
  print "loop num: ", j
  print "take time: ", ed_tm-st_tm
  print "temp_dic :", temp_dic
 
 
if __name__ == '__main__':
  test_rnd()
테스트 결과:
Test random.choice()---------------------------:
loop num:  10000000
take time:  5.86599993706
temp_dic : {1: 2501333, 2: 2500117, 3: 2499406, 4: 2499144}
Test random.randint()---------------------------:
loop num:  10000000
take time:  12.493999958
temp_dic : {1: 2497732, 2: 2501411, 3: 2499372, 4: 2501485}

그 결과 평균(균일)분포.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기