Python学习第133课--画出100个人的人生

论坛 期权论坛 期权     
Python系统学习   2019-7-13 07:55   1905   0
我们上节模拟了一个赌徒进行多次赌博后的结果,在这个模拟中定义的扔骰子的函数是随机抽取1-6的数字,赌博函数也需要输入初始资金、每次下注金额、赌博次数这些参数,每一次模拟都是对数字进行处理,而且输出结果也是一堆数字以及字符串。

数字及字符串的这种结果展示方式,不能够让人非常直观的感受一些趋势或者是变化的东西,尤其是当模拟很多次时,输出的结果是一大堆数字时,看起来非常不方便,而通过图表、图形的形式去展示,就能够让人们对结果、结论的认识更直观、更明了。

那么这节我们就把上节的模拟赌博的结果数据可视化。
要把数据可视化,我们就需要引入数据可视化的库matplotlib进行画图,要画图就需要导入matplotlib的数据是列表。
要导入列表形式的数据,那么这个列表数据从哪来?我们把模拟过程中赌博函数每次产生的数字添加到列表中就行了。
要画图我们画什么形式的图呢?
因为我们是模拟赌博后赌徒还剩多少钱的结果,我们要根据每次下注完成一次赌博后剩多少钱的结果来绘制图形,那么以赌博次数作为x轴、赌博后剩余的钱数作为y轴,来绘制折线图是比较合适的。
以上就是把模拟的结果数据可视化的整个思维流程。

我们把上节的代码稍作修改,把print语句都删了,因为这些print语句是为了让我们对模拟过程看的更清楚,只是给我们自己看的。

现在假设有100个赌徒,我们模拟这100个赌徒赌博时资金变化的情况,把他们资金变化的情况可视化。我们上节的代码定义的赌博函数,是规定一个赌徒初始资金100万,每次下注1万,总共玩100次,现在我们规定每个赌徒初始资金还是100万,每次下注10万,总共玩10万次。

代码如下:








由于代码超出屏幕范围,截了三次图。代码是连贯完整的。
上面的代码中都有相应的注释,如果是按照顺序从第1课学习到这一课的话,通过代码结合注释,应该能很清楚的理解代码的逻辑,不再赘述。如果有遗忘的知识点,可以查看之前的图文。

运行结果:



最终画出来的折线是100条,每一条折线表示一个赌徒的资金变化。
我们根据这个图,可以看y轴0以上的折线有一些,还有0以下的折线,0就已经表示从刚开始的100万都输光了,0以下就是输完了所有的钱还不够,又输了很多可能都倾家荡产了。

我们看到y轴1以下的折线部分比1以上的要多,因为1就代表没输没赢,说明这100个人,输钱的人多,赢钱的人少。当然也有少数人的资金超过0.5*10的8次方,说明极少数人运气好,赢了5000万以上。

但是总体这100人赢的少,输的多,而且如果你看趋势,x轴超过100000之后,有很多曲线是向下走的,说明如果玩的越多,输钱的可能性就越大。当然这个图主要是反映扔骰子的游戏,因为扔骰子扔出大和小的概率都一样,就跟扔硬币一样,扔出正面和反面的概率一样,也就是说输赢的概率各50%,所以这个图上面显示的输家和赢家的比例差的不多,但是真正的赌博,赌场不可能在定规则时,让输赢的概率都是50%,肯定是玩家输的概率更高一些,即使是输赢各50%,赌场也可以通过调整赔率的方式让赌客输钱。

比如还拿扔骰子来说,输赢各50%。打个比方,假设每次下注是1块钱,赢了赌场给你0.9元,输了这1块钱就没了。那么也就是说,你玩的越多,由于输赢概率是50%,所以你输的次数和赢的次数接近一样。假如你玩了10000次,每次下注1块钱,那么按照输赢概率来算,你基本上就会赢5000次,输5000次,那么赢的那5000次,你就赢了5000*0.9=4500元,输的那5000次,你每次1块钱赌注都没了,你就输了5000元,所以你玩10000次,到最后实际上你就是输了5000-4500=500元。
如果是这种扔骰子、扔硬币的输赢概率的玩法,如果你赢了,赌场给你奖励1块钱,你输了,赌场扣你1块钱赌注,那么你玩的次数越多,就越接近不赔不赚。
如果你赢了,赌场给你奖励1块1,你输了,赌场扣你1块钱赌注,那么你玩的越多,你最后总体上就是赚钱的,但是赌场是绝对不可能这么干的。

你看,即使是这种输赢概率各50%的游戏,通过调整奖励和赌注的赔率,让你总体输钱。总之,。

如果一个玩法,赌场赢的概率51%甚至更高,那赌客更不可能赢钱。比如说同样扔骰子,赌场规定扔出56才算大,才是赢,那你想想,你玩的越多,是不是输的可能赢越大。总之赌场会制定有利于自己的规则,来保证他们赚钱,他赚赌徒就亏,这是零和博弈。当然绝大多数的赌徒,是没有能力计算出一个赌博规则的输赢的概率的,即使是乌拉姆这样的数学家,也难以算出赌场中一些玩法单次输赢的概率。还得通过发明蒙特卡洛模拟,这种建立模型多次模拟的方法去计算概率。

我们学的主要是这种建模解决问题的思想。

扯多了,这只是我的个人想象,真正的赌场规则咱也不知道。但是道理就是这个道理。

跟我一起学习Python,长按二维码关注我
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP