隨機數練習

2021-10-10 19:14:11 字數 2072 閱讀 2421

構造乙個大小為 100(共 100 個數)的隨機 0、1 序列,也就是乙個只含 0、1 的陣列,要求 0 出現的概率為 1/3,1 出現的概率為 2/3,然後將該序列繪製出來,並列印出該序列中 0 的個數與 1 的個數。

# 定義從均勻分布中獲取隨機數的函式

defget_uniform_random_number

(low, high)

:"""

:param low: 均勻分布的下界

:param high: 均勻分布的上界

:return: 從均勻分布中產生的隨機數

"""# 均勻分布的隨機數生成

number = np.random.uniform(low, high)

# 返回值

return number

# 定義從乙個數字列表中以一定的概率取出對應區間中數字的函式

defget_number_by_pro

(number_list, pro_list)

:"""

:param number_list:數字列表

:param pro_list:數字對應的概率列表

:return:按概率從數字列表中抽取的數字

"""# 用均勻分布中的樣本值來模擬概率

x = random.uniform(0,

1)# 累積概率

cum_pro =

0.0# 將可迭代物件打包成元組列表

for number, number_pro in

zip(number_list, pro_list)

: cum_pro += number_pro

if x < cum_pro:

# 返回值

return number

# 主模組

if __name__ ==

"__main__"

:# 數字列表

num_list =[0

,1]# 對應的概率列表

pr_list =[1

/3,2

/3]# 函式呼叫

# 定義儲存100個隨機序列的列表

result_list =

for i in

range

(100):

n = get_number_by_pro(number_list=num_list, pro_list=pr_list)

# 列印結果

print

(result_list)

zero_sum =

0 one_sum =

0for i in result_list:

if i==1:

one_sum +=

1else

: zero_sum +=

1print

("0的個數有{}"

.format

(zero_sum)

)print

("1的個數有{}"

c 隨機數練習

在c 中,像隨機輸出乙個值並沒有任何規律並不難,只是需要匯入乙個庫,cstdlib生成隨機數的 如下 include include using namespace std intmain 但是每次執行結果都是41啊,難道 寫錯啦?還是奇怪的警告?不,我們再使用ctime庫就好啦,如下 includ...

shell指令碼隨機數練習

使用for迴圈在 westos目錄下批量建立10個html檔案,其中每個檔案需要包含10個隨機小寫字母加固定字串westos bin bash path westos d path mkdir p path for n in seq 10 do random openssl rand base64 ...

演算法練習 隨機數(2)

續之前寫過的隨機數。之前n和k要相隔不大的情況下會產生碰撞,導致程式鎖死。看了程式設計珠璣的課後的答案,改進了一下。具體思路是定義乙個陣列,並遞增賦值。再設定隨機數種子,產生隨機數。並不是直接放入陣列中。而是將產生的隨機數作為下標即a i rand n i 與a i 交換位置。我自己做了乙個測試。程...