python產生隨機數的函數
① python隨機模塊random的22種函數(小結)
Python中的random模塊提供了以下22種用於生成偽隨機數的函數:
random.random:
- 生成一個0到1之間的隨機浮點數。
random.choice:
- 從非空序列seq中隨機選取一個元素。
random.choices:
- 從序列population中隨機選取多個元素,可以設置每個元素的相對權重。
random.getrandbits:
- 生成一個指定位數k的隨機整數。
random.getstate:
- 獲取隨機數生成器的內部狀態。
random.setstate:
- 恢復隨機數生成器的內部狀態。
random.randint:
- 生成指定范圍[a, b]內的隨機整數,包含兩端點。
random.randrange:
- 從指定基數的遞增集合中獲取隨機數。
random.sample:
- 從序列population中隨機選取k個不重復的元素,返回一個新序列。
random.shuffle:
- 將列表x中的元素隨機打亂順序。
random.uniform:
- 生成[a, b]范圍內的隨機浮點數。
random.triangular:
- 生成一個符合三角形分布的隨機數,low是下限,high是上限,mode是眾數。
random.weibullvariate:
- 生成符合威布爾分布的隨機數,alpha是形狀參數,beta是尺度參數。
random.betavariate:
- 生成符合β分布的隨機數,alpha和beta是形狀參數。
random.expovariate:
- 生成符合指數分布的隨機數,lambd是率參數。
random.gammavariate:
- 生成符合伽馬分布的隨機數,alpha是形狀參數,beta是尺度參數。
random.gauss:
- 生成符合高斯分布的隨機數,mu是均值,sigma是標准差。
random.lognormvariate:
- 生成符合對數正態分布的隨機數,mu是μ參數,sigma是σ參數。
random.normalvariate:
- 生成符合正態分布的隨機數,mu是均值,sigma是標准差。
random.paretovariate:
- 生成符合帕累托分布的隨機數,alpha是形狀參數。
random.seed:
- 初始化隨機數生成器。如果不提供種子a,則使用系統時間。
- 注意:此函數未在問題描述中明確提及,但它是random模塊中常用的一個函數,用於設置隨機數生成的起點。
random.SystemRandom:
- 返回一個使用系統隨機數源的隨機數生成器對象。
- 注意:雖然SystemRandom類不是直接生成隨機數的函數,但它提供了基於操作系統提供的隨機性來生成隨機數的方法,因此在此一並列出以供參考。
這些函數在Python的random模塊中提供了豐富的隨機數生成功能,適用於各種需要隨機數生成的場景。
② python 生成隨機數模塊random 常用方法總結
在Python中,random模塊是生成隨機數的重要工具,包含多種方法,以下為您介紹幾個常用方法。
首先,random.random()函數用來生成一個0到1之間的浮點數,包括零。例如:random.random()。
其次,randint(a, b)函數用於生成在區間[a, b]內的隨機整數,包含邊界值。例如:random.randint(1, 10)。
再者,random.uniform(a, b)函數生成在區間[a, b]內的隨機浮點數,包含邊界值。例如:random.uniform(1, 10)。
接下來,choice(seq)函數從非空序列中隨機選擇一個元素,seq可以是list、tuple、字元串等。例如:random.choice([1, 2, 3, 4, 5])。
randrange(start, stop[, step = 1])函數結合了random和range的特性,生成在指定區間內的隨機整數。例如:random.randrange(1, 10)。
此外,random.shuffle(x[,random])函數將列表中的元素打亂順序。例如:random.shuffle([1, 2, 3, 4, 5])。
再看random.sample(sequence,k)函數,用於從有序列表中隨機選取k個元素作為樣本。例如:random.sample([1, 2, 3, 4, 5], 3)。
最後,random.seed(x)函數用來改變隨機數生成器的種子。如果不清楚原理,通常無需特別設置種子,Python會自動選擇一個。使用相同的種子,每次生成的隨機數序列都相同。
有關隨機數種子的原理和演算法,您可以參考:Python下探究隨機數的產生原理和演算法。