1. 程式人生 > 程式設計 >python隨機數分佈random均勻分佈例項

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,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: ",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}

結果說明:

平均(均勻)分佈。

以上這篇python隨機數分佈random均勻分佈例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。