概率论中的 50 个具有挑战性的问题 [第 6 部分]:Chuck-a-Luck

一、说明

        我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克·莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇文章只有 1 个问题,使其成为一个总共有 50 个部分的系列。让我们潜入并激活我们的脑细胞!

图片由作者使用 DALL-E 3 提供。

        Chuck-a-Luck 是一种赌博游戏,经常在嘉年华会和赌场玩。玩家可以投注数字 1、2、3、4、5、6 中的任何一个。掷三个骰子。如果玩家的号码出现在骰子的一、二、三上,他将分别获得他原始赌注的一倍、两倍或三倍加上他自己的钱;否则,他将失去股份。

        问题:玩家每单位赌注的预期损失是多少?

(实际上,玩家可以在几个数字上分配赌注,但每个这样的赌注都可以被视为一个单独的赌注。

二、问题分析:

        合乎逻辑的方法是在六个数字中的每一个上放置一个单位赌注,导致玩家总共下注 6 个单位。有三种不同的可能情况:(1)三个骰子上的所有数字都不同,(2)骰子上的两个数字完全相同,(3)三个骰子上的所有数字都相同。让我们分别考虑每种情况。

        情况(1):三个骰子上的所有数字都不同。
        在这种情况下,您从三个中奖号码中赢了三个单位,但从三个输号码中损失了三个单位。因此,损失为 0 (3–3)。有多少种不同的方法可以得到三个不同的数字?它是 6 x 5 x 4 = 120 种方式。掷三个骰子的总可能结果是 6 x 6 x 6 = 216

因此,在所有数字都不同的情况下,预期损失为 0 * (120/216) = 0。

        情况(2):骰子上的两个数字完全相同。
        在这种情况下,您赢得了三个单位,因为您从相同的数字中获得两个单位,从单个不同的数字中获得一个单位。但是,您从四个 (6-2) 失败数字中的四个单位中输掉。因此,每单位赌注的损失为 1/6 (4/6–3/6)。有多少种不同的方法可以得到两个相同的数字?它是 6 x 5 x 3 = 90 种方式。

因此,在两个数字完全相同的情况下,预期损失为 1/6 * (90/216) = 15/216。

        情况(3):三个骰子上的所有数字都相同。
        在这种情况下,您赢得了三个单位,因为您从相同的数字中获得三个单位。但是,您从五个 (6-1) 个失败数字中的五个单位中输掉了。因此,每单位赌注的损失为 2/6 (5/6–3/6)。有多少种不同的方法可以得到两个相同的数字?它只是 种方式。

因此,在所有三个数字都相同的情况下,预期损失为 2/6 * (6/216) = 1/108。

        要计算玩家每单位赌注的预期损失,只需将所有三种情况的预期损失相加即可。

结合所有三种情况,玩家每单位赌注的预期损失为 0 + 15/216 + 1/108 = 0.079。

三、替代解决方案:

        另一种方法是假设玩家只在一个数字上放置一个单位赌注。有四种不同的可能情况:(1)玩家的号码没有出现在三个骰子中的任何一个上,(2)玩家的号码出现在一个骰子上,(3)玩家的号码出现在两个骰子上,(4)玩家的号码出现在所有三个骰子上。让我们分别考虑每种情况。

情况(1):玩家的号码没有出现在三个骰子中的任何一个上。
发生这种情况的概率是 (5/6)³ = 125/216。

情况(2):玩家的号码出现在一个骰子上。
发生这种情况的概率是 (1/6) * (5/6)² * 3C1 = 25/72。

情况(3):玩家的号码出现在两个骰子上。
发生这种情况的概率是 (1/6)² * (5/6) * 3C2 = 5/72。

情况(4):玩家的号码出现在所有三个骰子上。
发生这种情况的概率为 (1/6)³ * 3C3 = 1/216。

通过将概率乘以每种情况的损失,我们得到与之前相同的结果(如下图所示)。

每单位股份的预期损失。

Python 代码:

import numpy as npn_trials = 10000000
choice = np.random.randint(1,7, size = (n_trials,1))
rolls = np.random.randint(1,7, size = (n_trials, 3))
count = np.sum(choice==rolls, axis=1)
mean_loss = (np.sum(count==0) + (-1)*np.sum(count))/n_trials
print(f'Expected loss per unit stake: {mean_loss:.3f}')# Output:
# Expected loss per unit stake: 0.079

这就是这个运气🎲问题的全部内容。欢迎任何反馈或问题!该代码可在我的 Github 上找到。请继续关注本系列的下一部分!:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解ibm_t60(945)的板子的保护隔离和ec的待机供电

1.,首先看ec待机条件: 待机供电,32k时钟,复位,适配器检测,开关信号。但是视频居然是找适配器的接口,跟着视频走,所以我先找打了适配器接口j24。vint20为公共点,我查了vint20的所有接线发现没有小…

js右击自定义菜单

功能点&#xff1a;右击阻止默认事件 根据js提供方法window.getSelection()判断当前有值则出现菜单 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

现代 NLP:详细概述,第 1 部分:transformer

阿比吉特罗伊 一、说明 近五年来&#xff0c;随着 BERT 和 GPT 等思想的引入&#xff0c;我们在自然语言处理领域取得了巨大的成就。在本文中&#xff0c;我们的目标是逐步深入研究改进的细节&#xff0c;并了解它们带来的演变。 二、关注就是你所需要的 2017 年&#xff0c;来…

CSRF(Pikachu)

CSRF&#xff08;get&#xff09; 首先我们先登录账号 admin 密码是&#xff1b;123456 点击修改个人信息 用F12或者BP 抓包看看我们的url 那么构成的CSRF攻击payload为http://pikachu.shifa23.com/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sexboy&phonenum”手机…

美团开店宝集成策略:API连接助力用户运营与客服系统

无代码开发与美团开店宝API的协同作用 随着电子商务的快速发展&#xff0c;商家们迫切需要一种既能提高效率又能降低技术门槛的电商管理方案。美团开店宝API提供了这样一种解决方案&#xff0c;特别是当与无代码开发结合时&#xff0c;它的优势更加明显。无代码开发免去了商家…

44.常用shell之 export - 设置或显示环境变量 的用法及衍生用法

export 是一个在类 Unix 系统的 shell 中常用的命令&#xff0c;用于设置或显示环境变量。环境变量是在操作系统层面定义的&#xff0c;用于控制程序的行为和访问系统资源。以下是 export 命令的基本用法和一些衍生用法的示例&#xff1a; 基本用法 设置环境变量: export VARv…

Django-REST-Framework 如何快速生成Swagger, ReDoc格式的 REST API 文档

1、API 接口文档的几种规范格式 前后端分离项目中&#xff0c;使用规范、便捷的API接口文档工具&#xff0c;可以有效提高团队工作效率。 标准化的API文档的益处&#xff1a; 允许开发人员以交互式的方式查看、测试API接口&#xff0c;以方便使用将所有可暴露的API接口进行分…

普冉PY32系列(十四) 从XL2400迁移到XL2400P

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

React快速入门之组件

组件 文件&#xff1a;Profile.js export default function Profile({isPacked true&#xff0c;head,stlyeTmp,src,size 80}) {if (isPacked) {head head " ✔";}return (<div><h1>{head}</h1><imgsrc{src}alt"Katherine Johnson&q…

cmake 入门笔记

以下内容为本人的著作&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「englyf」https://mp.weixin.qq.com/s/dUmsmiwzULQKmjfFILDdag 1. cmake 是什么&#xff1f; 这些年大型 C/C 工程都纷纷转到了 cmake 环境下&#xff0c;那么这个工具到底有什么魅力吸引着…

电商数据分析-02-电商业务介绍及表结构

参考 电商业务简介 大数据项目之电商数仓、电商业务简介、电商业务流程、电商常识、业务数据介绍、电商业务表、后台管理系统 举个例子:&#x1f330; 1.1 电商业务流程 电商的业务流程可以以一个普通用户的浏览足迹为例进行说明&#xff0c;用户点开电商首页开始浏览&…

Guava的Joiner的日常使用

具体使用参考官方文档&#xff1a;https://github.com/google/guava/wiki/StringsExplained#joiner//1 处理&#xff0c;为null的值&#xff0c;替换 String join Joiner.on("_").useForNull("*").join("1", "2", 90, 100,110,109,20…

shell 编程中内置的变量(冷门又好用)

简介 分别盘点一下 shell 中的内置变量&#xff0c;真的巨好用&#xff01;&#xff01;&#xff01;包括&#xff1a;环境变量类、shell 变量类、终端设置类和其他一些变量。 常用的内置变量目录如下 1. 环境变量类 $MACHTYPE&#xff1a;机器类型 $OSTYPE&#xff1a;操作…

JVM初识-----01章

一.虚拟机与java虚拟机的区别以及共同点 1.虚拟机&#xff08;Virtual Machine&#xff0c;简称VM&#xff09; 是一种能够在物理计算机上模拟一台完整的计算机系统的软件。它运行在宿主操作系统之上&#xff0c;可以提供一个独立的运行环境&#xff0c;使得在不同的操作系统上…

【深度学习-目标检测】03 - Faster R-CNN 论文学习与总结

论文地址&#xff1a;Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks 论文学习 1. 摘要与引言 研究背景与挑战&#xff1a;当前最先进的目标检测网络依赖于 区域提议&#xff08;Region Proposals&#xff09;来假设目标的位置&#xff0c…

CentOS系统环境搭建(二十六)——使用nginx在无域名情况下使用免费证书设置https

centos系统环境搭建专栏&#x1f517;点击跳转 文章目录 使用nginx在无域名情况下使用免费证书设置https1.获取SSL证书1.1 生成SSL密钥1.2 生成SSL证书1.3 重命名密钥文件 2.nginx配置https2.1 放证书2.2 修改nginx.conf文件2.2.1 将80端口重定向到4432.2.2 端口443配置ssl证书…

如何处理uni-app中的跨平台差异

在uni-app中&#xff0c;可以通过条件编译和平台判断来处理跨平台差异代码。具体步骤如下&#xff1a; 在uni-app项目的根目录下&#xff0c;找到名为manifest.json的文件&#xff0c;这是uni-app的配置文件。 在manifest.json文件中&#xff0c;可以使用条件编译指令来处理不…

Upload-Labs-Linux

题目 1.打开靶机 随便上传一个图片&#xff0c;查看get请求发现/upload/XXX.jpg 2.创建一个脚本文件 命名为flag.php.jpg,并上传 脚本文件内容&#xff1a; <?php eval($_POST[1234])?> 3上传后复制文件get请求的链接并打开蚁剑 连接密码为123 双击链接 4&#xff…

我在 VSCode 插件里接入了 ChatGPT,解决了Bug无法定位的难题

作为一名软件开发者&#xff0c;我时常面临着代码中Bug的定位和解决问题。这个过程往往既费时又充满挑战。然而&#xff0c;最近我在我的VSCode插件中接入了ChatGPT&#xff0c;这个决定彻底改变了我处理Bug的方式。 Bug&#xff1a;开发者的噩梦 在开发过程中&#xff0c;遇…

leetcode 6. N 字形变换(medium)(优质解法)

链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 代码&#xff1a; class Solution {public String convert(String s, int numRows) {if(numRows 1) {return s;}int lengths.length();StringBuilder retnew StringBuilder();//获取…