首页 > 其他分享 >有趣的概率——车羊问题与硬币问题

有趣的概率——车羊问题与硬币问题

时间:2023-10-11 16:14:33浏览次数:27  
标签:door 硬币 res selected 问题 num trials 车羊 change

 

 

1、经典车羊问题

假设你参加一个游戏节目,有三扇关闭的门,其中一扇后面有一辆汽车,而其他两扇后面是山羊。你首先选择一扇门,然后主持人打开另外两扇门中的一扇,露出其中一只山羊。

现在,你可以选择是否改变自己的选择,选择另外一扇未被打开的门。那么,应该改变选择还是保持原来的选择呢?

import random

def monty_hall_simulation(change_choice, num_trials):
    wins_times = 0
    
    for _ in range(num_trials):
        doors = ['car', 'goat', 'goat']
        random.shuffle(doors)  # 随机排列门的位置        
        first_selected_door = random.randint(0, 2)  # 随机选择一扇门
        
        # 主持人打开一扇有山羊的门
        opened_door = next(i for i in range(3) if i != first_selected_door and doors[i] == 'goat')
#判断是否选择交换 if change_choice: selected_door = next(i for i in range(3) if i not in (first_selected_door, opened_door)) else: selected_door = first_selected_door if doors[selected_door] == 'car': wins_times += 1 win_percentage = (wins_times / num_trials) * 100 return win_percentage # 进行10000次实验 win_percentage_with_change= monty_hall_simulation(change_choice=1, num_trials=10000) win_percentage_without_change= monty_hall_simulation(change_choice=0, num_trials=10000) print(f"改变选择时获胜的概率: {win_percentage_with_change}%") print(f"保持选择时获胜的概率: {win_percentage_without_change}%") #输出 改变选择时获胜的概率: 66.25% 保持选择时获胜的概率: 33.22%

2、假如我有初始筹码一百块钱,现在有个抛硬币的游戏,抛出正反面的概率是0.5,每次抛出正面,我的筹码量可以增加80%,抛出反面则减少50%,那么我该玩这个游戏吗?

 2.1 如果每次必须全部筹


def func_p(p):
  x=random.random() #左闭右开[0,1}
  if x>=(1-p):
    return 1
  else:
    return 0

def get_res(num_trials):
    x=100

    for _ in range(num_trials):
        if func_p(0.5) == 1:
            x=x*1.8
        else:
            x=x*0.5
    return x

res=get_res(100000)

print ("最终收益为:"+str(res-100))
#输出
#最终收益为:-100.0

 

 

 2.1 如果可以改变筹码量

 

#单次抛硬币后我筹码的期望为0.5*180+0.5*50=115,只要有充足的资金,不管玩几次,单次的期望始终为正值
def get_res(num_trials): res=0 for _ in range(num_trials): x=100 #每次筹码量固定 if func_p(0.5) == 1: x=x*1.8 else: x=x*0.5 res=res+x return (res/num_trials) res=get_res(100000) print ("平均收益为:"+str(res-100)) #输出 #平均收益为:15.092299999999994

 

标签:door,硬币,res,selected,问题,num,trials,车羊,change
From: https://www.cnblogs.com/jax-/p/17757402.html

相关文章

  • 问题记录贴:vue-i18n在弹出框中$t()报错:TypeError: Cannot read property '_t' of unde
    网上有用的解决方法:vue国际化在弹出框中$t()报错:TypeError:Cannotreadproperty'_t'ofundefined大佬给出的解决方法:弹窗是一个新的Vue对象,只需要单独给弹窗重新绑定i18n即可。代码://dialog/main.jsimportcustomDialogfrom'./dialog.vue'importi18nfrom'@/i18n'......
  • mysql插入数据时遇到的问题
    1、 Illegalmixofcollations(latin1_swedish_ci,IMPLICIT)and(utf8mb4_general_ci,COERCIBLE)foroperation'=' 解决:原因:因为新创建的表字符集是latin1_swedish_ci,而原有的字符集需要utf8mb4_general_ci,所以报错。ALTERTABLE表名CONVERTTOCHARACTER......
  • Java程序【生产问题】排查
    1.查看线程数:方法一:查看/proc/[进程ID]/grepThreads/proc/[进程ID]/status方法二:ps-L-opid,tid,comm,state-p[进程ID]2.jstack分析Java堆栈jstack-l[进程ID]3.查看IOeg:如果有toomanyopenfiles的报错,则说明程序打开的文件过多1.查看该进程打开......
  • luffy前端配置,跨域问题,后端数据库迁移, 后台主页功能,后台管理
    1luffy前端配置......
  • 问题:出现404错误页面的原因
    404错误原因:服务器找不到请求的网页。可能的原因有:1.管理员将原始的网页数据更改,导致网页失效。2.上传到网页的文件目录或文件名称被更改,导致原网页失效。3.上传到网页的文件被移动或被删除也可能导致原链接失效。4.输入的网址有错误,不能连接到所需的文件。......
  • 为什么不能单纯地从前端来解决跨域问题?LiteNVR安防视频系统为何需要跨域?
    视频监控系统涉及到从前端实时图像信息的采集、信息的传输交换、实时监控到信息的数字化、相关的联动应用和庞大的信息管理等多项环节,包括对各前端视频信息的采集、传输、监控、存储、处理、发布、回放、流转、备份等管理。在安防监控系统LiteNVR运维过程中,我们有时会遇到关于跨......
  • 关于vant移动端的样式使用hbuilderX打包成app时数据请求失败的问题
    项目使用的是vant4,在使用hbuilderX打包时,发现请求后端失败,然后在网上查了一下说是因为在apk中不存在跨域的问题,所以不需要进行代理设置那就取消代理试试吧(注:我这里使用的是cli3):api.js中写入exportconstlogin=(data)=>{//登录  returnaxiosPost('http://xxx.xxx.......
  • Debian12安装MySQL8实践及问题解决方案
    Debian12安装MySQL数据库,常规操作:sudoaptsearchmysql&sudoaptinstallmysql,肯定是行不通的,因为没有安装包。把我的安装过程以及遇到问题的解决方案记录下来,供大家借鉴。第一步更新系统、下载软件包命令如下:sudoaptupdatewgethttps://dev.mysql.com/get/mysql-apt-co......
  • 使用 KubeSkoop exporter 监测和定位容器网络抖动问题
    作者:遐宇、溪恒本文是8月17日直播的文字稿整理,文末可观看直播回放。除去文章内容外,还包括针对实际网络问题的实战环节。容器网络抖动问题发生频率低,时间短,是网络问题中最难定位和解决的问题之一。不仅如此,对Kubernetes集群内的网络状态进行日常的持续性监测,也是集群运维中很......
  • 使用 KubeSkoop exporter 监测和定位容器网络抖动问题
    作者:遐宇、溪恒本文是8月17日直播的文字稿整理,文末可观看直播回放。除去文章内容外,还包括针对实际网络问题的实战环节。容器网络抖动问题发生频率低,时间短,是网络问题中最难定位和解决的问题之一。不仅如此,对Kubernetes集群内的网络状态进行日常的持续性监测,也是集群运维......