python模拟掷两个色子_微凉.@_@的博客-程序员秘密

技术标签: python  

模拟掷两个色子代码:

import random as t
def roll_dice():
    roll = t.randint(1,6)
    return roll

def main():
    """
    主函数
    """
    total_times = 1000000
    #初始化列表[0,0,0,0,0,0,0,0,0,0,0]
    list1 = [0] * 11
    #初始化点数列表
    roll_list = list(range(2,13))
    roll_dict = dict(zip(roll_list,list1))
    for i in range(total_times):
        roll1 = roll_dice()
        roll2 = roll_dice()
        for j in range(2,13):
            if (roll1 + roll2) == j:
                roll_dict[j] += 1
    for i, result in roll_dict.items():
        print("点数{}的次数:{},频率{}".format(i,result,result / total_times))
if __name__ == "__main__":
    main()


输出结果:

点数2的次数:27662,频率0.027662
点数3的次数:55132,频率0.055132
点数4的次数:83568,频率0.083568
点数5的次数:111308,频率0.111308
点数6的次数:138184,频率0.138184
点数7的次数:167134,频率0.167134
点数8的次数:138542,频率0.138542
点数9的次数:111404,频率0.111404
点数10的次数:83788,频率0.083788
点数11的次数:55573,频率0.055573
点数12的次数:27705,频率0.027705

数据可视化

import random as t
import matplotlib.pyplot as plt
def roll_dice():
    roll = t.randint(1,6)
    return roll

def main():
    """
    主函数
    """
    total_times = 100
    #初始化列表[0,0,0,0,0,0,0,0,0,0,0]
    list1 = [0] * 11
    #初始化代数列表
    roll_list = list(range(2,13))
    roll_dict = dict(zip(roll_list,list1))
    #记录色子的结果
    roll1_list = []
    roll2_list = []
    for i in range(total_times):
        roll1 = roll_dice()
        roll2 = roll_dice()
        roll1_list.append(roll1)
        roll2_list.append(roll2)
        for j in range(2,13):
            if (roll1 + roll2) == j:
                roll_dict[j] += 1
    for i, result in roll_dict.items():
        print("点数{}的次数:{},频率{}".format(i,result,result / total_times))
    #数据可视化
    x = range(1,total_times + 1)
    plt.scatter(x,roll1_list,c = "red",alpha = 0.5)
    plt.scatter(x,roll2_list,c= "green",alpha= 0.5)
    plt.show()
if __name__ == "__main__":
    main()

数据可视化结果:

在这里插入图片描述

  • enumerate()函数用于将可遍历的列表转换为一个索引序列,一般用于for循环中,同时列出元素和元素的索引号。转换字典用 items() 函数。
    在这里插入图片描述
  • zip()函数用于将对应的元素打包成一个元组。

在这里插入图片描述
注意:元组中的数据是不可修改的,若要修改需要转换成字典或其他。
dic(zip(l1 + l2))

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48381563/article/details/107044499

智能推荐

托福练习_Penno_彭儒的博客-程序员秘密

托福听力练习做一篇听力题(不对答案); 逐句精听 ① 第一遍:听整句大意 懂:对照原文,是否完全理解; 不懂:步骤②; ② 第2遍:听句子主干(主谓宾,从句,从句主谓宾) 懂:步骤②; 不懂:对照原文,分析问题(单词,句子,语法,听感(连读弱读、语气语调))+跟读 ③ 第3遍:听主干外剩余细节 懂:对照原文,是...

光纤相关介绍_光纤波分复用器_波分复用器-芯泰通信的博客-程序员秘密

光纤的结构光纤是光导纤维的简称,其结构如图:内层为纤芯,折射率较高,用来传输光;中间层为包层,折射率较低,与纤芯一起形成全反射条件;最外层为保护层,用来保护光纤。光纤的分类按光纤中传输的模式数量,可以将光纤分为单模光纤(Single Mode Fiber,SMF)和多模光纤(Multi-Mode Fiber,MMF) 。光波长光的本质是电磁波,而人们可见的光波则是电磁波频谱中很小的一个波段,它的波长范围在380 nm 到780 nm 之间。光纤通信的波长在800nm~1.

TD18系列多功能精密校准器厂家校准仪器_御前的博客-程序员秘密

TD18系列是一款宽范围、高精度的多功能校准器,内置超精密的交直流电压源和电流源,可输出性能优异的直流电压、直流电流、直流功率及交流电压、交流电流、交流功率、相位、频率等电参量。

正则表达式限制输入框输入_black_ceo的博客-程序员秘密

转载自:http://www.cnblogs.com/xiaosuo/archive/2010/01/05/1639547.html正则表达式限制输入框只能输入数字 keyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') "

openeuler 适配ros包问题记录_openeuler缺少qtcore_Chenjy9581的博客-程序员秘密

问题[ 351s] Could not find a package configuration file provided by "Qt5Widgets" with[ 351s] any of the following names:[ 351s] [ 351s] Qt5WidgetsConfig.cmake[ 351s] qt5widgets-config.cmake解决dnf install qt5-devel问题[ 418s]..

socket技术详解(看清socket编程)_weixin_30828379的博客-程序员秘密

https://blog.csdn.net/weixin_39634961/article/details/80236161socket编程是网络常用的编程,我们通过在网络中创建socket关键字来实现网络间的通信,通过收集大量的资料,通过这一章节,充分的了解socket编程,文章用引用了大量大神的分析,加上自己的理解,做个总结性的文章1:socket大致介绍 socket编...

随便推点

cjson库解析指南_cjson.git_早睡的叶子的博客-程序员秘密

文章目录cjson学习指南代码教程1. 解析cjsongit子模块使用了cjson官方的源码:[email protected]:DaveGamble/cJSON.git需要使用本教程则需要使用该指令拉取代码git clone [email protected]:sexjun/cds_cjson.git --recurse-submodules拿到GitHub的源码先干什么?查看证书,可否商用,自己代码是否需要开源查看使用查看注意事项我们来看看cjson的readme有什么好看的。cJSON.h和

MySQL8.0!!!登录失败|ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password_mysql8登录报错1045_小阳是我的博客-程序员秘密

还是老规矩,重点直接看黄字,或者直接看第三节解决方案,其他都是废话!!运行环境:windows10、mysql8.0.24、cmd用管理员权限运行。前情提要:1、博主做毕设找了一份源码,数据库sql文件的编码格式是utf8mb4,然后当时的mysql版本是mysql5.0,于是就开始了卸载旧版本安装新版本(当前最细mysql8.0.24)的历程。2、跟着网上的教程一顿操作猛如虎之后,以为安装成功,输入mysql -u root -p,然后输入生成的初始root密码,结果就报错ERROR 1045 (

Unity3D引用System.Web.dll打包发布的问题及解决_unity 'httputility_PengQiuYuan_Fj的博客-程序员秘密

一个U3D项目中使用了StriveEngine作为通信组件与服务端进行通信,在U3D环境中,编译运行一切正常,但在打包发布(Build)为PC版本可执行文件时

ThreadLocal分析_yueloveme的博客-程序员秘密

大家推荐个靠谱的公众号程序员探索之路,大家一起加油,这个公众号已经接入图灵 ​ 1.ThreadLocal 作用: 每个线程从ThreadLocal的实例对象中取出的对象 都是自己线程拥有的2.同步和ThreadLocal都是解决多线程中数据访问问题的两种思路同步是数据共享的思路   ThreadLocal是数据隔离的思路同步是时间换空间    ThreadLocal是空间换时间3...

通过css裁切图片为菱形图片_web css 菱形_小圣贤君的博客-程序员秘密

在web设计中,把图片裁切成菱形图片展示是一种常见的需求,通过photoshop直接将一张图片裁剪成菱形是一种解决方案,但不是最佳解决方案,这里笔者直接通过css设计了两种方案,来实现让图片菱形展示。 以以下图片为例: 我们想要这张图片以菱形的效果展示,这里是不能让图片直接通过rotate来旋转实现的,直接让图片旋转,那图片的内容也就倾斜了。我们想要的效果图是这样的: 这里介绍两种方法

Turtlebot移动机器人gazebo仿真及自动导航(详细级)_ros noetic 定位导航_还是要追梦的的博客-程序员秘密

6. 在菜单栏选择File(文件)>Save As(另存为),另存当前编辑好的仿真环境文件,选择一个保存路径(可以自己先创建一个文件)并取名为my_building(可自定义名称),保存完成之后可以看到生成一个名为my_building的文件夹,包含model.config和model.sdf两个文件。5. 给墙壁添加材质和纹理特征,选择左侧区域下方Add Texture(添加质地)中的Bricks(砖)选项,然后鼠标左键单击三维视图区域的外墙,即可以为外墙添加砖的纹理和质地。

推荐文章

热门文章

相关标签