python蒙特卡洛算法模拟赌博模型
sklearn实战-乳腺癌细胞数据挖掘
https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share
蒙特卡洛与赌博模型
蒙特卡洛_赌博模型
来,先谈一部电影!
《决胜21点》讲述了几位数学天才少年凭才智大闹赌城拉斯维加斯的故事。举世闻名的麻省理工,堪称是莘莘学子、科学天才们向往的圣地。作为有幸能到这里读书的新生,本·坎贝尔(吉姆·斯特吉斯饰)自然也有他的过人之处。的确,坎贝尔超常的数学运算才能在他进入麻省理工没多久就开始崭露头角。学院里讲授数学理论课程的米基·罗萨(凯文·史派西饰)更是一眼就看中了小伙子,并对其光明的未来充满了信心。经过短暂的接触之后,罗萨教授将这位数学天才介绍给他精心培养的另外几位数学高才生认识,并邀其加入一个由罗萨领导,由吉尔(凯特·波茨沃斯饰)、费舍(雅各布·皮特斯饰)等数学天才共同组成的“特殊团队”,专攻赌场上风行的“21点”游戏。运用他们对于数学的尖端认识和运算,在经验丰富的罗萨教授的指导下,轻松应对“21点”游戏中可能出现的各种局面,最终确保高频率地取胜纪录。
诶?听上去貌似都有点道理!您觉得呢?手指继续动,跟我继续看下去……
下面我开始数学建模,然后用蒙特卡洛模拟历史上最常见的几种赌博模型。
一 symplebedding system
数学天才可以在赌场春风得意,但普通人没这么好运气。因为第一赌场要抽成,首先让你不利,在大数定理面前,赌博次数越多,输钱概率就越大。所以赌场安排好了规则后,通常只做一件事,就是让你不停赌博。只要堵得次数越多,大数定理对你越不利。况且赌场指定规则并非5:5平等,赌客赢钱概率不到50%,不利因素还不止一个。
下面我用Python建立蒙特卡洛模型,模拟大数定理(赌博次数越多,输钱概率就越大)
纵坐标表示手里赌博金额,横坐标是赌博次数
起始赌金10000元,这里有一百条曲线,代表一百个赌徒,赌博次数为100次时,大概有50条曲线在10000元以上,50条曲线在10000元以下。这表示赢钱和输钱的人差不多。
仍然一百个赌徒,赌博次数增加到一千次,大多数曲线走势低于10000元,表示破产的人多于赢钱的人。赌博次数少时,大数定理不明显。赌博次数多时大数定理开始发挥作用。
simple_bettor(10000,100,1000)
随着赌博次数增加到一万次,赌博人数达到一千人,可以看到大数法则体现,绝大多数人都破产。
二 doublebedding system
伏尔泰的情妇,夏特莱侯爵夫人是个数学家和物理学家。夏特莱出身贵族,受过良好的教育。1733年以后,她同当时杰出的学者伏尔泰*建立了联系。她又是牟培尔堆*的亲密朋友之一。当时赌博在欧洲盛行,贵族也不例外。伯爵夫人提出了double
bedding system,即双倍法,这次输了,下次赌注加一倍,如果赢了就可以把上次输的钱捞回来。不幸的是夏特莱侯爵夫人的双倍法输光了所有钱,发生了著名的与伏尔泰私奔事件。
(Chatelet, Gabrielle-Emilie Le
Tonnelier de Breteuil,Marchioness du)
我用蒙特卡洛模拟后,发现伯爵夫的双倍法破产,破产率很高,赢钱率也不如simple。
三 D'AlembertStrategy
达朗贝尔(1717~1783)法国著名的物理学家、数学家和天文学家。1717年11月17日生于巴黎,1783年10月29日卒于巴黎。一生研究了大量课题,完成了涉及多个科学领域的论文和专著,其中最著名的有八卷巨著《数学手册》、力学专著《动力学》、23卷的《文集》、《百科全书》的序言等等。他提出的达朗贝尔赌博模型比较保守,不容易输钱,不会像夏特莱侯爵夫人把大量钱输的精光。
经过模特卡洛模拟发现
优点:破产率几乎为0
缺点:赢钱率不高,64%左右,赢的钱不多,做多10%左右
四 LabouchereSystem
那么,我们能找到一个优秀赌博算法模型嘛,能赢很多钱,赢得概率又大?答案是有的,看了皇家赌场007电影知道,英国政府机构派007詹姆士邦德去赢恐怖分子的钱。英国政府可不愿意输钱,他们为007定制了一套高胜率的算法,数学上成为Labouchere System。
单次Labouchere模拟Labouchere System for Gambling Tested
总赌金和赢取目标金额比例是1/10,胜率就有百分之90
总结,今天我用蒙特卡洛模拟了历史上常见几种赌博模型,由于专业性较强,赌博模型只是简单介绍,以后有机会可详细阐述。
在真实的赌场上,赌客持久赢钱概率很低。
现在赌场都是高科技行业,拥有较多数学工程师和计算机工程师,赌客无时无刻都被赌场设计的模型算计。
因此去赌场寻欢作乐还行,赢小钱还可以,想赢很多钱,嗯,看你运气了,
python蒙特卡洛算法模拟赌博模型的更多相关文章
- python蒙特卡洛脚本模拟—挑战者号爆炸概率
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
http://www.cqt8.com/soft/html/723.html下载,官网下载 (转帖)1.定义: 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数 ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- 【转】利用Python中的mock库对Python代码进行模拟测试
出处 https://www.toptal.com/python/an-introduction-to-mocking-in-python http://www.oschina.net/transla ...
- Metropolis 采样与蒙特卡洛算法
Metropolis 算法又叫 Metropolis 抽样,是模拟退火算法的基础,在早期的科学计算中蒙特卡洛方法(Monte Carlo)是对大量原子在给定温度下的平衡态的随机模拟,当蒙特卡洛算法计算 ...
- 数学建模python matlab 编程(疾病传播模型)
例12:一只游船上有800(1000)人,一名游客不慎患传染病,12(10)小时后有3人发病,由于船上不能及时隔离,问经过60(30)小时,72小时,患此病的人数.(与人口模型和Logistic模型类 ...
- Python基础算法综合:加减乘除四则运算方法
#!usr/bin/env python# -*- coding:utf-8 -*-#python的算法加减乘除用符号:+,-,*,/来表示#以下全是python2.x写法,3.x以上请在python ...
- Python使用mechanize模拟浏览器
Python使用mechanize模拟浏览器 之前我使用自带的urllib2模拟浏览器去进行訪问网页等操作,非常多站点都会出错误,还会返回乱码.之后使用了 mechanize模拟浏览器,这些情况都没出 ...
- xsank的快餐 » Python simhash算法解决字符串相似问题
xsank的快餐 » Python simhash算法解决字符串相似问题 Python simhash算法解决字符串相似问题
随机推荐
- C++:模板——函数模板1
一.为什么使用函数模板 假设我们在程序中需要比较两个变量的大小,但变量的类型可能是int.float或者double,此时为了满足程序的要求我们可能会在程序中编写多个函数,如: //比较两个int型变 ...
- Task 6.4 冲刺Two之站立会议5
在完成主界面和聊天窗口的连接之后,今天对聊天界面在以前的基础上添加了很多东西,比如说对于文件传输和文字通信时的表情包的添加以及抖动窗口的设置等等一一系列的功能.我完成的是文字通信这一部分的内容.
- POJ 3744 Scout YYF I 概率dp+矩阵快速幂
题目链接: http://poj.org/problem?id=3744 Scout YYF I Time Limit: 1000MSMemory Limit: 65536K 问题描述 YYF is ...
- Java第一天——环境变量的配置与破解myeclipse2013
一.jdk环境变量的配置 1.下载JDK并安装(官网JavaSE,64位(具体看电脑是多少位的))官网http://www.oracle.com/technetwork/java/javase/dow ...
- 重学 以太网的mac协议的CSMA/CD
之前上课一直模糊的CSMA/CD进行系统性整理. CSMA/CD (Carrier Sense Multiple Acess/Collision Detect)应用在OSI的 数据链路层 在以太网中, ...
- SQL语句中order_by_、group_by_、having的用法区别
order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有“聚合函数”来配合才能使用 ...
- 减小Delphi 2010/delphi XE编译出来的文件大小
1.禁用RTTI 禁用的方法很简单,就是要在工程(dpr文件中.Delphi2010下项目文件是dproj文件,但dpr文件仍然是默认的编写代码的项目文件)的Uses语句前添加下面的定义就可以了: { ...
- 每个Android开发者必须知道的内存管理知识
原文:每个Android开发者必须知道的内存管理知识 拷贝在此处,以备后续查看. 相信一步步走过来的Android从业者,每个人都会遇到OOM的情况.如何避免和防范OOM的出现,对于每一个程序员来说确 ...
- Java 使用 dom4j 读取 xml文档 demo
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://www. ...
- POJ1149_PIGS
一共有n个猪圈,m个客人,一开始每个猪圈都有一定数量的猪猪.每个客人会打开一些猪圈,带走最多为某一个数量的猪猪,剩下的猪猪可以任意分配在这些开了的猪圈里面,然后重新关上.问所有的客人最多可以带走多少猪 ...