構造乙個大小為 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)
# 列印結果
(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)
("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 交換位置。我自己做了乙個測試。程...