中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python小程序--模擬擲骰子

案例描述
· 通過計算機程序模擬拋擲骰子,并顯示各點數(shù)的出現(xiàn)次數(shù)及頻率
· 比如,拋擲2個骰子50次,出現(xiàn)點數(shù)為7的次數(shù)是8,頻率是0.16

版本1.0

1.0功能:模擬拋擲1個骰子,并輸出其結(jié)果

如何通過Python模擬隨機事件?或者生成隨機數(shù)?
· random模塊
· 遍歷列表時,如何同時獲取每個元素的索引號及其元素值?
· enumerate()函數(shù)

更多random模塊的方法請參考:
https://docs.python.org/3/library/random.html

  1. '''
  2. 功能:模擬擲骰子
  3. 版本:1.0
  4. '''
  5. import random
  6. def roll_dice():
  7. '''
  8. 模擬擲骰子
  9. '''
  10. roll = random.randint(1,6)
  11. return roll
  12. def main():
  13. total_times = 10
  14. #初始化列表[0,0,0,0,0,0]
  15. result_list = [0] * 6
  16. for i in range(total_times ):
  17. roll = roll_dice()
  18. for j in range(1,7):
  19. if roll == j:
  20. result_list [j-1] += 1
  21. for i, result in enumerate(result_list):
  22. print('點數(shù){}的次數(shù):{},頻率:{}'.format(i + 1, result, result / total_times))
  23. if __name__ == '__main__':
  24. main()

 版本2.0

功能:模擬拋擲2個骰子,并輸出其結(jié)果

如何將對應的點數(shù)和次數(shù)關聯(lián)起來?
· zip()函數(shù)

  1. '''
  2. 功能:模擬擲骰子
  3. 版本:2.0
  4. '''
  5. import random
  6. def roll_dice():
  7. '''
  8. 模擬擲骰子
  9. '''
  10. roll = random.randint(1,6)
  11. return roll
  12. def main():
  13. total_times = 100
  14. #初始化列表[0,0,0,0,0,0]
  15. result_list = [0] * 11
  16. #初始化點數(shù)列表
  17. roll_list = list(range(2,13))
  18. roll_dict = dict(zip(roll_list ,result_list )) #元組結(jié)構(gòu)
  19. for i in range(total_times ):
  20. roll1 = roll_dice()
  21. roll2 = roll_dice()
  22. for j in range(2,13):
  23. if (roll1+roll2) == j:
  24. roll_dict[j] += 1
  25. #遍歷列表
  26. for i, result in roll_dict.items():
  27. print('點數(shù){}的次數(shù):{},頻率:{}'.format(i, result, result / total_times))
  28. if __name__ == '__main__':
  29. main()

版本3.0

功能:可視化拋擲2個骰子的結(jié)果

Python數(shù)據(jù)可視化
· matplotlib模塊

matplotlib是一個數(shù)據(jù)可視化函數(shù)庫
· matplotlib的子模塊pyplot提供了2D圖表制作的基本函數(shù)
· 例子:https://matplotlib.org/gallery.html

  1. '''
  2. 功能:模擬擲骰子
  3. 版本:3.0
  4. '''
  5. import random
  6. import matplotlib.pyplot as plt
  7. def roll_dice():
  8. '''
  9. 模擬擲骰子
  10. '''
  11. roll = random.randint(1,6)
  12. return roll
  13. def main():
  14. total_times = 100
  15. #初始化列表[0,0,0,0,0,0]
  16. result_list = [0] * 11
  17. #初始化點數(shù)列表
  18. roll_list = list(range(2,13))
  19. roll_dict = dict(zip(roll_list ,result_list )) #元組結(jié)構(gòu)
  20. # 記錄骰子的結(jié)果
  21. roll1_list = []
  22. roll2_list = []
  23. for i in range(total_times ):
  24. roll1 = roll_dice()
  25. roll2 = roll_dice()
  26. roll1_list.append(roll1)
  27. roll2_list.append(roll2)
  28. for j in range(2,13):
  29. if (roll1+roll2) == j:
  30. roll_dict[j] += 1
  31. #遍歷列表
  32. for i, result in roll_dict.items():
  33. print('點數(shù){}的次數(shù):{},頻率:{}'.format(i, result, result / total_times))
  34. #數(shù)據(jù)可視化
  35. x = range(1,total_times +1)
  36. plt.scatter (x,roll1_list ,c='red',alpha = 0.5) #alpha:透明度 c:顏色
  37. plt.scatter (x, roll2_list, c='green',alpha=0.5)
  38. plt.show()
  39. if __name__ == '__main__':
  40. main()

 

 版本4.0

功能:對結(jié)果進行簡單的數(shù)據(jù)統(tǒng)計和分析

簡單的數(shù)據(jù)統(tǒng)計分析
· matplotlib直方圖

  1. '''
  2. 功能:模擬擲骰子
  3. 版本:4.0
  4. '''
  5. import random
  6. import matplotlib.pyplot as plt
  7. # 解決中文顯示問題
  8. plt.rcParams['font.sans-serif'] = ['SimHei'] #SimHei黑體
  9. plt.rcParams['axes.unicode_minus'] = False
  10. def roll_dice():
  11. '''
  12. 模擬擲骰子
  13. '''
  14. roll = random.randint(1,6)
  15. return roll
  16. def main():
  17. total_times = 100
  18. # 記錄骰子的結(jié)果
  19. roll_list=[]
  20. for i in range(total_times ):
  21. roll1 = roll_dice()
  22. roll2 = roll_dice()
  23. roll_list.append(roll1 + roll2)
  24. #數(shù)據(jù)可視化
  25. plt.hist(roll_list ,bins=range(2,14),normed= 1,edgecolor='black',linewidth=1)
  26. #edgeclor:邊緣顏色 linewidth:邊緣寬度 normed=1時轉(zhuǎn)化為概率圖
  27. plt.title('骰子點數(shù)統(tǒng)計') #名稱
  28. plt.xlabel('點數(shù)')
  29. plt.ylabel('頻率')
  30. plt.show()
  31. if __name__ == '__main__':
  32. main()

 

版本5.0 

功能:使用科學計算庫簡化程序,完善數(shù)據(jù)可視化結(jié)果

使用科學計算庫NumPy簡化程序

NumPy的操作對象是多維數(shù)組ndarray
· ndarray.shape 數(shù)組的維度
· 創(chuàng)建數(shù)組:np.array(<list>),np.arrange() …
· 改變數(shù)組形狀 reshape()

NumPy創(chuàng)建隨機數(shù)組
· np.random.randint(a, b, size)
創(chuàng)建 [a, b)間形狀為size的數(shù)組

NumPy基本運算
· 以數(shù)組為對象進行基本運算,即向量化操作
· 例如:

 

np.histogram() 直接輸出直方圖統(tǒng)計結(jié)果 

 

matplotlib繪圖補充
· plt.xticks() 設置x坐標的坐標點位置及標簽
· plt.title()設置繪圖標題
· plt.xlabel(), plt.ylabel() 設置坐標軸的標簽

  1. '''
  2. 功能:模擬擲骰子
  3. 版本:5.0
  4. '''
  5. import random
  6. import matplotlib.pyplot as plt
  7. import numpy as np
  8. # 解決中文顯示問題
  9. plt.rcParams['font.sans-serif'] = ['SimHei'] #SimHei黑體
  10. plt.rcParams['axes.unicode_minus'] = False
  11. def roll_dice():
  12. '''
  13. 模擬擲骰子
  14. '''
  15. roll = random.randint(1,6)
  16. return roll
  17. def main():
  18. total_times = 1000
  19. # 記錄骰子的結(jié)果
  20. roll1_arr = np.random.randint(1,7,size=total_times)
  21. roll2_arr = np.random.randint(1, 7, size=total_times)
  22. result_arr = roll1_arr + roll2_arr
  23. # hist,bins = np.histogram(result_arr ,bins=range(2,14))
  24. # print(hist)
  25. # print(bins)
  26. #數(shù)據(jù)可視化
  27. plt.hist(result_arr ,bins=range(2,14),normed= 1,edgecolor='black',linewidth=1,rwidth= 0.8)
  28. #edgeclor:邊緣顏色 linewidth:邊緣寬度 normed=1時轉(zhuǎn)化為概率圖 rwidth:柱子寬度
  29. #設置X軸坐標點
  30. tick_labels = ['2點', '3點', '4點', '5點',
  31. '6點', '7點', '8點', '9點', '10點', '11點', '12點']
  32. tick_pos = np.arange(2, 13) + 0.5
  33. plt.xticks(tick_pos,tick_labels)
  34. plt.title('骰子點數(shù)統(tǒng)計') #名稱
  35. plt.xlabel('點數(shù)')
  36. plt.ylabel('頻率')
  37. plt.show()
  38. if __name__ == '__main__':
  39. main()
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Matplotlib繪制的27個常用圖(附對應代碼實現(xiàn))
用matplotlib實現(xiàn)畫中畫
做硬核老爸,我用 Python
樣式美化(matplotlib.pyplot.style.use)
掌握了Matplotlib這兩個方法,輕松繪制出漂亮的直方圖!
Matplotlib畫圖如此簡單
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服