解决问题
生日问题:
班里有50个同学,问班里至少有两个人的生日同月同日的概率。
如何生成50个随机生日,如果记录这50个生日。
改进:如何快速判断是否重复?
掷硬币游戏
模拟连续掷硬币50次,是否会出现连续6次一样的概率。 改进:如何提高效率
三门问题
有一款电视游戏节目。游戏规则是参赛者会看见三扇关闭的门,其中一扇的后面有奖品是一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面是空的。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇。之后主持人会问参赛者要不要换另一扇仍然关上的门。
编程找出答案,换另一扇门是否会增加参赛者赢得汽车的机率。
先写程序模拟用户玩一次游戏。其中他不更换最初的选择。
再把这个 玩一次游戏 的功能封装成一个函数,返回1或0,表示是否中奖。
最后模拟10000次,统计中奖次数。
模拟骰子游戏
两个人玩骰子游戏,甲是庄家,他先掷骰子,乙再掷骰子,如果两次骰子点数相同,则庄家赢,其他情况大点数赢,小点输。两人各有10元,每次输赢1元.
写一个程序模拟两人不断的掷骰子,直到有人输光为止。
课后练习:如果有一个庄家,五个闲家呢?
赌徒破产问题
在赌徒破产问题中,假设一个赌徒开始时有一定的初始财富X,每次游戏他有p的概率赢得1元,1-p的概率输掉1元。如果赌徒的财富变为0,他就破产。如果赌徒的财富达到目标Y,他就会停止游戏。编写一个程序模拟这个过程,并计算赌徒破产的概率。 p任选0~1之间,比如0.4;Y在1~100元之间,比如50元。
摸珠子游戏
在抖音上看到一个视频:一个大爷在街上摆摊,用一个袋子装了红绿蓝各8颗珠子。玩家把手伸进口袋摸出12颗珠子,数出不同颜色珠子个数,就能够获得相应的奖金。但如果三种颜色珠子的个数是543,玩家还得给老板10元。
情况 | 中奖金额 | 情况 | 中奖金额 |
---|---|---|---|
840 | 100元 | 651 | 1元 |
831 | 10元 | 642 | 1元 |
822 | 10元 | 633 | 1元 |
750 | 20元 | 552 | 1元 |
660 | 20元 | 741 | 2元 |
444 | 1元 | 732 | 2元 |
543 | -10元 |
编程模拟这个游戏,计算出玩家的中奖和赔钱概率。