【前端验证】关于那道经典概率题,用UVM环境来仿真下是男孩的概率

简介: 【前端验证】关于那道经典概率题,用UVM环境来仿真下是男孩的概率

在抖音上一直有一道争论不休的概率题:一个家庭有两个孩子,已知一个是男孩,另外一个也是男孩的概率是多大?A.1/2 B.1/3


对于概率论这个东西吧,我承认学的比较一般,尤其也没考过研所以对于大部分概率题是不敢去插嘴的。不过这个题感觉我又行了!


我秉承的观点是,概率是对大量随机事件分布统计结果的归纳与数学化。所以个人观点,就是把所有有两个孩子的家庭邀请过来,请两个女孩的家庭先回去,然后统计剩下这些有一个男孩的家庭数量a,再统计另外一个也是男孩的数量b,然后用b/a就得到了最终的概率。


鉴于芯片验证环境就是使用大量随机来模拟真实环境的,那么不妨我们用UVM的仿真环境来实测一下。使用 gen_uvm_agent 生成一个测试环境,那么不如我们就把两个孩子起名信号boy为0代表女孩为1代表男孩,之后根据题目进行一下约束:

rand bit [2 -1:0] boy;
constraint boy_transaction::boy_cons{
    |boy[1:0] == 1'b1;
}


约束也很简单,有一个是男孩那就是两个孩子“或”在一起是1就可以了,除此之外再没有其他的限制。那么接下来,让我们收集10000个家庭的情况也就是发10000个包,在driver中进行统计:

            if(req.boy[1:0] == 2'b11)begin
                boy_boy_cnt++;
            end


统计什么也很简单,就统计“2'b11”的家庭数量看看另一个也是男孩的总数是多少,然后在仿真结束后把boy_boy_cnt的数量打出来!


很显然,统计结果和我们的预期是一点都一样的:

UVM_INFO /home/xiaotu/Git_Path/gen_uvm_agent/gen_uvm_agent/boy_utils/src/boy_scb.sv(54) @ 1967530000: uvm_test_top.env.scb [boy_scb] Compare SUCCESSFULLY
boy-boy cnt = 3331
UVM_INFO /tools/synopsys/vcs/vcs-mx_vL-2016.06/etc/uvm-1.2/base/uvm_report_server.svh(894) @ 1968890000: reporter [UVM/REPORT/SERVER] 


显然,真实的统计结果就是10000个满足“一个家庭有两个孩子,已知一个是男孩”的家庭里,有3331个家庭满足“另外一个也是男孩”,所以概率是1/3。


已经把自己说服了(*^▽^*)


相关文章
|
1月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
55 3
|
24天前
|
存储 前端开发 搜索推荐
Web前端网站(一) - 登录页面及账号密码验证
页面背景动态是烟花和文字特效与缓缓下落的雪花相结合,在登录表单的旁边还有五个白色光圈以不规则的方式环绕,当鼠标靠近时,会发出彩色的光芒~~~
36 1
Web前端网站(一) - 登录页面及账号密码验证
|
10天前
|
前端开发
支付系统--微信支付21--搭建前端环境,payment-demo-front这个项目文件夹是前端显示文件,payment-demo是后端项目,支付页面常见三个页面:购买课程,我的订单,下载账单
支付系统--微信支付21--搭建前端环境,payment-demo-front这个项目文件夹是前端显示文件,payment-demo是后端项目,支付页面常见三个页面:购买课程,我的订单,下载账单
|
2月前
|
前端开发 开发工具 开发者
构建高效的前端开发环境
在如今快节奏的软件开发领域,构建一个高效的前端开发环境变得至关重要。本文将介绍一些关键的工具和技术,帮助开发者提升前端开发效率,包括代码编辑器、版本控制系统、自动化构建工具、包管理器以及调试和性能优化等方面。
|
24天前
|
前端开发 JavaScript
阿里云验证码2.0 验证时报错 前端页面获取的验证参数有问题,动态JS加载失败,请问怎么解决啊?急,急,急。
用户反馈校验时遇到错误,日志显示验证码参数获取异常。采用无痕验证,失败后,返回`{captchaResult:false,bizResult:false}`,未触发滑块二次验证。
|
2月前
|
前端开发 JavaScript IDE
构建高效的前端开发环境
本文探讨了如何构建一个高效的前端开发环境,包括选择合适的开发工具、优化工作流程和提高代码质量的方法。通过本文的指导,读者可以更好地提升前端开发效率,快速构建出高质量的网站和应用程序。
|
2月前
|
移动开发 前端开发 JavaScript
电话拨号盘的前端仿真实现
电话拨号盘的前端仿真实现
|
2月前
|
前端开发 API Docker
web前端开发项目走proxy代理后端接口,构建发布到生产等环境后,如何修改api接口
web前端开发项目走proxy代理后端接口,构建发布到生产等环境后,如何修改api接口
53 0
|
2月前
|
前端开发 JavaScript 测试技术
构建现代化前端开发环境的关键要素
【2月更文挑战第8天】 在当今快速发展的数字化时代,前端开发成为了互联网行业中不可或缺的重要组成部分。构建一个现代化的前端开发环境是提高开发效率和用户体验的关键所在。本文将介绍几个关键要素,包括响应式设计、前端框架选择、自动化构建工具以及代码质量保障,帮助开发者打造高效、稳定、可维护的前端开发环境。
|
2月前
|
前端开发 开发工具 git
构建高效的前端开发环境
【2月更文挑战第2天】本文介绍了如何构建一个高效的前端开发环境,包括选择合适的开发工具、优化代码编辑和调试流程、提高团队协作效率等方面。通过采用最新的前端技术和工具,开发人员可以更快速地构建出高质量的网站和应用程序。
62 1