Python中random模組的分析(附實例)
random是Python產生偽隨機數的模組,隨機種子預設為系統時脈。以下分析模組中的方法:
1、random.randint(start,stop)
這是一個產生整數隨機數的函數,參數start代表最小值,參數stop代表最大值,兩端的數值都可以取到;
函數演算法時間複雜度為:O(1)
核心原始碼:
return self.randrange(a,b+1) #调用randrange函数来处理
實例:
import random for i in range(20): print(random.randint(0,10),end=' ')
結果:
1 1 7 5 10 1 4 1 0 8 7 7 2 10 6 8 6 0 3 1
2、random.randrange(start,stop,step)
也是一個隨機整數函數,參數可選
只有一個參數時,預設隨機範圍是0到該參數,前閉後開;
兩個參數時,表示最小值和最大值,前閉後開
三個參數時,表示最小值,最大值和步長,前閉後開
函數演算法時間複雜度:O(1)
核心原始碼:
return istart+istep*self._randbelow(n) #调用randbelow函数处理
實例:
import random for i in range(10): print(random.randrange(10),end=' ') #产生0到10(不包括10)的随机数 print("") for i in range(10): print(random.randrange(5,10),end=' ') #产生5到10(不包括10)的随机数 print("") for i in range(10): print(random.randrange(5,100,5),end=' ') #产生5到100(不包括100)范围内的5倍整数的随机数
結果:
1 1 2 4 4 3 4 6 1 4 6 6 5 7 8 9 6 6 6 5 30 50 20 40 75 85 25 65 80 95
3、random.choice(seq)
#一個隨機選擇函數,seq是一個非空的集合,在集合中隨機選擇了一個元素輸出,元素的類型沒有限制。
核心原始碼:
i=self._randbelow(len(seq)) #由randbelow函数得到随机地下标 return seq[i]
函數演算法時間負責度:O(1)
實例:
import random list3=["mark","帅",18,[183,138]] for j in range(10): print(random.choice(list3),end=' ')
程式碼:
mark 帅 [183, 138] 18 mark 18 mark 帅 帅 [183, 138]
4、random.random()
這個函數形成從0.0到1.0之間的任意浮點數,左閉右開,沒有參數。
實例:
import random for j in range(5): print(random.random(),end=' ')
執行結果:
0.357486615834809 0.5928029747238529 0.37053940107869987 0.3802224543848519 0.9741990956161711
5、random.send(n=None)
一個可以對隨機數產生器進行初始化的函數,n代表隨機種子;當n=None時,隨機種子為系統時間,當n為其他的數據,如int,str等時,則以提供的數據作為隨機種子,此時生成的隨機數列固定。
實例:
import random random.seed("mark") for j in range(20):#无论启动多少次程序,输出的序列不变 print(random.randint(0,10),end=' ')
結果:
4 1 10 5 6 2 8 5 5 10 7 2 9 6 2 6 0 5 10 10
6、random.getstate() 和random.setstate(state):
getstate()函數用來記錄隨機數產生器的狀態,setstate(state)函數用來將生成器還原到上次記錄的狀態。
實例:
import random tuple1=random.getstate()#记录生成器的状态 for i in range(20): print(random.randint(0,10),end=' ') print() random.setstate(tuple1)#传入参数回复之间的状态 for i in range(20): print(random.randint(0,10),end=' ')#两次输出的结果一致
結果:
5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2 5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2
7、random.shuffle(seq,random=None):
對傳入的集合進行亂序操作。只能針對可變序列,如字串、列表,對於元組等不可變序列會報錯,random用來選擇亂序操作的方式,如random=random。
核心原始碼:
for i in reversed(range(1,len(x))): j=randbelow(i+1) x[i],x[j]=x[k],x[i]
函數演算法的時間複雜度:O(n)
實例:
import random lists=['mark','帅哥',18,[183,138]] print(lists) random.shuffle(lists,random=None) print(lists)
結果:
['mark', '帅哥', 18, [183, 138]] ['帅哥', 18, 'mark', [183, 138]]
8、random.sample(population,k):
population參數是一個序列,如列表、元組、集合、字串等;從集合中隨機抽取k個元素形成新的序列,不會改變原有的序列。
最壞時間複雜度:O(n*n)
#實例:
import random lists=['mark','帅哥',18,[183,138]] lists2=random.sample(lists,3) print(lists) print(lists2)
結果:
['mark', '帅哥', 18, [183, 138]] ['mark', [183, 138], '帅哥']
9、random.uniform(a, b)
產生參數a到b之間的浮點數的函數,如果a>b ,則產生b到a之間的浮點數。
核心原始碼:
return a+(b-a)*self.random()
時間複雜度:0(1)
#實例:
import random for i in range(5): print(random.uniform(10,1))
結果:
2.8826090956524606 1.5211191352548408 3.2397454278562794 4.147879756524251 6.532545391009419
以上是Python中random模組的分析(附實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
