09.3 python基礎--random庫
阿新 • • 發佈:2018-12-18
09.3.1 簡介
使用隨機數的python標準庫,用於產生隨機數
09.3.2 函式
基本隨機數函式
+ seed() :給隨機數物件一個種子值,用於產生隨機序列,完全相同的種子產生的隨機數列是相同的,所以如果想產生不同的隨機數就需要用當前時間作為種子
random.seed(0) print "Random number with seed 0 : ", random.random() random.seed(0) print "Random number with seed 0 : ", random.random() random.seed(0) print "Random number with seed 0 : ", random.random() >Random number with seed 0 : 0.844421851525 >Random number with seed 1 : 0.844421851525 >Random number with seed 2 : 0.844421851525
random.seed(0) print "Random number with seed 0 : ", random.random() random.seed(1) print "Random number with seed 1 : ", random.random() random.seed(2) print "Random number with seed 2 : ", random.random() >Random number with seed 0 : 0.844421851525 >Random number with seed 1 : 0.134364244112 >Random number with seed 2 : 0.956034271889
+ random():生成一個[0.0,1.0)之間的隨機小數
擴充套件隨機數函式
+ randint(a,b):生成一個a~b之間的整數
import random
n = random.randint(10,100)
print(n)
>42
+ randrange(m, n[, k]):生成一個[m,n]之間以k為步長的隨機整數
import random
n = random.randrange(10,100,10)
print(n)
>60
+ getrandbits(k):生成一個k位元長的隨機整數
import random n = random.getrandbits(10) print(n) >713
+ uniform(a,b):生成一個[a,b]之間的隨機小數
import random
n = random.uniform(10,100)
print(n)
>14.641504182041913
+ choice(seq):從序列seq中隨機選擇一個元素
import random
n = random.choice([1,2,3,4,5,6,7,8,9,0,])
print(n)
>6
+ shuffle(seq):打亂序列並重新排列
import random
l=[1,2,3,4,5,6,7,8,9,0]
random.shuffle(l)
print(l)
>[3, 4, 1, 8, 0, 6, 7, 2, 5, 9]
09.3.3 圓周率的計算
根據公式計算
import random
pi = 0
n = 1000
for i in range(n):
pi +=1/pow(16,i)*\
(4/(8*i+1)-2/(8*i+4)-\
1/(8*i+5)-1/(8*i+6))
print('圓周率的值是:{:.10f}'.format(pi))
>圓周率的值是:3.1415926536
隨機概率計算方法
from random import random
from time import perf_counter
s =1000*1000
n = 0
start = perf_counter()
for i in range(1,s+1):
x,y=random(),random()
l = pow(x**2+y**2,0.5)
if l <= 1:
n += 1
pi = 4*(n/s)
print('圓周率的值是:{}'.format(pi))
print('執行時間是:{:.5f}s'.format(perf_counter()-start))
>圓周率的值是:3.138736
>執行時間是:2.67644s