Python之random學習


  random庫是用於產生並運用隨機數的標准庫

  從概率論角度來說,隨機數是隨機產生的數據(比如拋硬幣),但時計算機是不可能產生隨機值,真正的隨機數也是在特定條件下產生的確定值,計算機不能產生真正的隨機數,只能產生偽隨機數

一、調用語句:

 

import random # python中的隨機數生成模塊

 

二、基本隨機數函數

(一)seed(a):設置初始化隨機種子,可重現相同隨機數序列,與其他函數配套使用

使用:

 

random.seed(a)

 

設置random包的seed值,該值對於生成隨機數至為重要,a取整數或浮點數不設置時默認以系統時間為種子

(二)random():下述

 

二、擴展隨機數函數

函數功能主要分為:

(一)獲取隨機小數

  1. random():生成一個[0.0,1.0)之間的隨機小數

In:

import random
x = random.random()
print(x)

Out:

>>0.8268016072790678

  2.uniform(a,b):生成一個[a,b]之間的隨機小數

In:

import random
x = random.uniform(10, 20)
print(x)

Out:

>>17.744508676671582

 

(二)獲取隨機整數

  1. randint(a,b):生成一個[a,b](b>a)之間的隨機整數(僅按域的要求獲得隨機整數

In:

import random
x = random.randint(10, 20)
print(x)

Out:

>>12

  2.getrandbits(k):生成一個k比特長度的隨機整數 按存儲大小的要求獲得隨機整數

In:

import random
x = random.getrandbits(3)
#隨機生成二進制長度為3位的十進制整數(0-7)
print(x)

Out:

>>5

  3.randrange(start,stop[,step]):生成一個[start,stop)之間以step為步數的隨機整數 按域、步長的要求獲得隨機整數

In:

import random
x = random.randrange(10, 100, 2)
#相當於從序列[10, 12, ..., 96, 98]中隨機返回一個數。
print(x)

Out:

>>62

 

(三)對序列類型進行隨機操作

  1. choice(seq):從序列類型seq(如字符串,列表,元組)中隨機返回一個元素(用於序列抽1簽)

In:

import random
x = random.choice(["i", "love", "Math"])
print(x)

Out:

>>Math

  2.shuffle(seq):將序列類型seq中元素隨機排序,返回打亂后序列,seq被改變(用於序列洗牌

In:

import random
x = ['python', 'is', 'powerful', 'simple', '.']
random.shuffle(x)
print(x)#會修改原有序列

Out:

>>['is', 'powerful', 'simple', '.', 'python']

  3.sample(pop,k):從序列類型pop中選取k個元素,以列表類型返回(用於序列抽K簽,存入列表

In:

import random
list = [1, 2, 3, 4, 5, 6, 7]
x = random.sample(list, 5)
# 從list中隨機選取5個元素,生成一個新的list並返回
print("改變后序列:",x)
print("原序列:",list)#原序列不改變

Out:

>>改變后序列: [2, 1, 4, 5, 7]
原序列: [1, 2, 3, 4, 5, 6, 7]

 

最后:random庫找隨機數在一些算法中使用最多,譬如遺傳算法找遺傳因子,找最優路徑時先生成隨機路徑再優化等等。而且random庫並不難學,只要熟悉了函數,就能夠很快上手幫助自己解決問題的

 


免責聲明!

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



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