random庫的使用


一、random庫介紹

random庫是使用隨機數的Python標准庫

  • 偽隨機數:采用梅森旋轉算法生成的(偽)隨機序列中元素
  • random庫主要用於生成隨機數
  • 使用random庫:import random

1.1 random庫概述

random庫包括兩類函數,常用共8個

  • 基本隨機數函數: seed(), random()
  • 擴展隨機數函數:randint(), getrandbits(), uniform(),randrange(), choice(), shuffle()

二、基本隨機數函數

2.1隨機數種子

[026-模塊3-random庫的使用-01.jpg?x-oss-process=style/watermark]

函數 描述
seed(a=None) 初始化給定的隨機數種子,默認為當前系統時間
random() 生成一個[0.0, 1.0)之間的隨機小數
import random

random.seed(10)  # 產生種子10對應的序列
random.random()

結果:0.5714025946899135

random.random()

結果:0.4288890546751146

random.seed(10)
random.random()

結果:0.5714025946899135

三、擴展隨機數函數

026-模塊3-random庫的使用-02.jpg?x-oss-process=style/watermark

函數 描述
randint(a,b) 生成一個[a, b]之間的整數
randrange(m, n[, k]) 生成一個[m, n)之間以k為步長的隨機整數
getrandbits(k) getrandbits(k)
uniform(a, b) 生成一個[a, b]之間的隨機小數
choice(seq) 從序列seq中隨機選擇一個元素
shuffle(seq) 將序列seq中元素隨機排列,返回打亂后的序列

eg: randint()

import random

random.randint(10, 100)

結果:60

eg:randrange()

import random
random.randrange(10, 100, 10)

結果:80

eg:getrandbits()

import random
random.getrandbits(16)

結果:37885

eg:uniform()

import random
random.uniform(10, 100)

結果:11.334920142209832

eg:choice()

import random
random.choice([1, 2, 3, 4, 5, 6, 7])

結果:5

eg:shuffle()

import random
s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(s)
print(s)

結果:[3, 9, 7, 4, 1, 2, 6, 5, 8]

3.1 隨機函數的使用

需要掌握的能力

  • 能夠利用隨機數種子產生"確定"偽隨機數
  • 能夠產生隨機整數
  • 能夠對序列類型進行隨機操作

四、圓周率的計算

  1. 蒙特卡洛方法

027-實例6-圓周率的計算-02.jpg

from random import random
from time import perf_counter

DARTS = 1000 * 1000
hits = 0.0
start = perf_counter()
a
for i in range(1, DARTS + 1):
    x, y = random(), random()
    dist = pow(x**2 + y**2, 0.5)
    if dist <= 1.0:
        hits = hits + 1
        
pi = 4 * (hits / DARTS)
print("圓周率值是: {}".format(pi))
print("運行時間是: {:.5f}s".format(perf_counter() - start))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM