0.任务描述
掷两个骰子,记录和的频次和频率。
1.思路描述
方法roll_dice()返回1-6的随机数表示掷骰子1次;
主函数中:
- 首先创建存储点数和次数的字典;具体实现方法是:创建两个列表分别存储点数2-12以及出现的次数;使用zip函数将两个列表转化为元组,随后转化成字典;
- 循环掷骰子n次,每次中掷骰子2次,计算二者之和并增加到对应键上的值。
2.程序和结果
"""
模拟掷骰子2.0
20190518
掷两个骰子
"""
import random
def roll_dice():
"""
模拟掷骰子
生成1-6随机数
"""
roll = random.randint(1, 6)
return roll
def main():
"""
主函数
"""
total_times = 100 # 掷骰子的总次数
result_times_list = [0] * 11 # 结果列表,记录的是每个点数出现的次数,两个骰子之和共有11种情况
result_points_list = list(range(2, 13))
result_times_dict = dict(zip(result_points_list, result_times_list))
for i in range(total_times):
ran_dice1 = roll_dice() # 第一次
ran_dice2 = roll_dice() # 第二次
for j in range(2, 13):
if ran_dice1+ran_dice2 == j:
result_times_dict[j] += 1
# print("出现了{}一次".format(ran_dice))
for i, x in result_times_dict.items():
print("点数{}出现了{}次,频率为{}!".format(i, x, x/total_times))
if __name__ == '__main__':
main()
Y:\Python\Anaconda\python.exe Y:/PythonWorkspace/lect08/RandomTest2.py
点数2出现了6次,频率为0.06!
点数3出现了4次,频率为0.04!
点数4出现了5次,频率为0.05!
点数5出现了9次,频率为0.09!
点数6出现了10次,频率为0.1!
点数7出现了25次,频率为0.25!
点数8出现了13次,频率为0.13!
点数9出现了12次,频率为0.12!
点数10出现了8次,频率为0.08!
点数11出现了3次,频率为0.03!
点数12出现了5次,频率为0.05!
Process finished with exit code 0