想從乙個序列中隨機抽取若干元素,或者想生成幾個隨機數。
random 模組有大量的函式用來產生隨機數和隨機選擇元素。比如,要想從乙個序列中隨機的抽取乙個元素,可以使用random.choice() :
>>> import random
>>> values = [1, 2, 3, 4, 5, 6]
>>> random.choice(values)
>>> random.choice(values)
>>> random.choice(values)
為了提取出n 個不同元素的樣本用來做進一步的操作,可以使用random.sample()
>>> random.sample(values, 2)
[6, 2]
>>> random.sample(values, 2)
[4, 3]
>>> random.sample(values, 3)
[4, 3, 1]
如果你僅僅只是想打亂序列中元素的順序,可以使用random.shuffle() :
>>> random.shuffle(values)
>>> values
[2, 4, 6, 5, 3, 1]
>>> random.shuffle(values)
>>> values
[3, 5, 2, 1, 6, 4]
生成隨機整數,請使用random.randint() :
>>> random.randint(0,10)
>>> random.randint(0,10)
為了生成0 到1 範圍內均勻分布的浮點數,使用random.random() :
>>> random.random()
0.9406677561675867
>>> random.random()
0.133129581343897
如果要獲取n 位隨機位(二進位制) 的整數,使用random.getrandbits() :
>>> random.getrandbits(200)
在random 模組中的函式不應該用在和密碼學相關的程式中。如果你確實需要類似的功能,可以使用ssl 模組中相應的函式。比如, ssl.rand bytes() 可以用來生成乙個安全的隨機位元組序列。
在python中輸出 在輸出中列印Python版本
如何從指令碼中列印當前python安裝的版本號?嘗試import sys print sys.version 這將列印完整的版本資訊字串。如果您只想要python版本號,那麼bastien l onard的解決方案是最好的。您可能想檢查完整的字串,看看是否需要它或它的一部分。import platf...
隨機選擇演算法
問題描述 本文主要討論這樣乙個問題 如何從乙個無序的陣列中求出第k大的數。這個問題最直接的想法是對陣列排一下序,然後直接取出第k個元素即可,這樣做法需要o nlogn 的時間複雜度。這個方法比較簡單,在執行時間允許的情況下當然選這個方法 下面介紹隨機選擇演算法,它對任何輸入都可以達到o n 的期望時...
隨機選擇演算法
如何求解無序陣列中第k大的數?問題 將陣列劃分為兩個子集,元素個數分別為n1,n2,兩個子集各自元素之和分別為s1,s2,使 s2 s1 盡可能大,使 n1 n2 盡可能小。求 s2 s1 分析 僅尋找陣列中第n 2大的數,將陣列劃分為兩個集合,乙個子集的元素都小於這個數,另乙個子集的元素都大於這個...