Python 按照概率分布生成隨機數

2021-09-12 23:37:24 字數 913 閱讀 8045

import random

傳入陣列為概率分布列表例如[10, 90],返回值為下標索引,返回值返回0的概率為10%,返回1的概率為90%

def random_index

(rate)

: # ""

"隨機變數的概率函式"

"" # 引數rate為list<

int>

# 返回概率事件的下標索引

start =

0 index =

0 randnum = random.

randint(1

,sum

(rate)

)for index, scope in enumerate

(rate)

: start += scope

if randnum <= start:

break

return index

random.

randint(1

,10) # 產生 1 到 10 的乙個整數型隨機數

random.

random()

) # 產生 0 到 1 之間的隨機浮點數

random.

uniform

(1.1

,5.4

) # 產生 1.1 到 5.4 之間的隨機浮點數,區間可以不是整數

random.

choice

('tomorrow'

) # 從序列中隨機選取乙個元素

random.

randrange(1

,100,2

) # 生成從1到100的間隔為2的隨機整數

Excel按照指定概率生成選定範圍內數字

今天有這麼乙個需求,需要按照指定的概率比如20 40 40 的概率對應生成1 2 3這3個數字 excel中如何實現呢?應該用什麼函式呢?引數又是什麼呢?首先這個功能不是單一的excel函式可以解決的需要兩個函式,分別是lookup和rand 最終的結果如下 lookup rand 100,這裡面需...

Python生成隨機數和numpy生成隨機數

生成隨機數 module random has no attribute randin 這種錯誤,是因為你取得檔案名字和python系統函式名重複 1 random.random 隨機產生乙個隨機數,可以使用迴圈生成更多的數 random.randint 生成整數,uniform生成浮點數,unif...

Python隨機生成多維正態分佈

本文採用python庫numpy生成隨機正態分佈。其中均值和方差均使用偽隨機生成方式。import numpy as np 使用np.eye 2 生成單位矩陣,然後乘以乙個隨機生成得均勻分布值組成單位矩陣得值 x0 np.random.multivariate normal np.random.un...