主观题:十赌九输,久赌必输 - 实验10 十赌九输,久赌必输 - 《Python编程实验》
大明是个爱思考的赌徒。他爱玩一种“买大小”的“骰宝”游戏,游戏赔率为1赔1。有一天,他兴奋地宣布他发明了一个“永不失败”的押宝方法。具体操作如下:每天都参与赌博,第一局投入1元资金,如果第一局赢了,就马上停止赌博并回家(当天的总收益为1元)。如果第一局输了,就玩第二局。第二局投入2元资金,这局赢了的话,也停止赌博并回家。这种情况下,当天的总收益仍为1元。 因为2局游戏共支出 1 + 2 = 3元,最后一局返回4元。输的话,就继续玩第三局。第三局投入资金4元,若第三局赢了,则停止赌博并回家。 这种情况下,当天总收益仍为1元。 因为3局共支出为 1 + 2 + 4 = 7元,最后一局返回8元。如果输了,就继续第四局。第四局投入资金8元…… 一直这么玩下去,直到获胜一次。换句话说:大明每天都可以赢1元。
<br><br>
1. 假设大明现有赌资1024元,且当大明手里实时赌资小于或等于0元后,他必须永远退出赌场。下述程序试图模拟大明按上述方法赌博所导致的一个月的资金变化情况,并绘制如图10-1所示的资金变化图。请结合后续解题提示及程序内的注释将代码补充完整,并上机调试运行。
<br>
<br>

【解题提示】<br><br>
* 假设“买大小”这种赌局是公平的,即输赢概率均为0.5。我们可以使用0~1之间服从均匀分布的随机数对每个赌局进行模拟。若产生的随机数大于0.5,则表示大明这局赌博获胜;若产生的随机数小于或等于0.5,则表示大明这局赌博失败。<br><br>
* 将大明每天的赌博过程定义为一个函数,该函数的输入为开始赌博时手里资金数,输出为退出赌博时手里的资金数。该函数可以使用while循环模拟每天的赌博过程,并且:如果大明某局赌赢了或大明手里赌资总数少于0元时,退出while循环;否则继续下注,并实时减少大明手里的赌资总数。

<br>图10-1 预期的资金变化图
2. 久赌必输<br><br>
运行上述程序,你会发现大明每次都会赚钱,似乎大明的“必胜”方案是正确的,每天都会稳定地赚1元。但真实情况必然如此吗?<br>
请修改上述程序,将赌博天数分别改为365(一年)、1825(五年)、3650(十年),再多次运行并观察结果。<br>
由于随机数的参与,程序每次运行的结果都可能不一样。在作者的机器上,某次运行结果如图10-2所示:大明刚开始时每天赢一元,很开心,到了大约200多天时,破产出局。<br>

<br>图10-2 久赌必输
请上传一个Word文档,该文档应包括:
* 补充完整的源代码;
* 如图10-1所示的30天资金变化图;
* 如图10-2所示的十年资金变化图。
<br><br>
注意:变化图的标题开头请加上你的学号;由于随机数的参与,读者在自己计算机上得到的运行结果很可能与图10-1,图10-2有区别。
答案:程序正确及质量5分;
两个图表分别是3分及2分。
<br><br>
1. 假设大明现有赌资1024元,且当大明手里实时赌资小于或等于0元后,他必须永远退出赌场。下述程序试图模拟大明按上述方法赌博所导致的一个月的资金变化情况,并绘制如图10-1所示的资金变化图。请结合后续解题提示及程序内的注释将代码补充完整,并上机调试运行。
<br>
<br>

【解题提示】<br><br>
* 假设“买大小”这种赌局是公平的,即输赢概率均为0.5。我们可以使用0~1之间服从均匀分布的随机数对每个赌局进行模拟。若产生的随机数大于0.5,则表示大明这局赌博获胜;若产生的随机数小于或等于0.5,则表示大明这局赌博失败。<br><br>
* 将大明每天的赌博过程定义为一个函数,该函数的输入为开始赌博时手里资金数,输出为退出赌博时手里的资金数。该函数可以使用while循环模拟每天的赌博过程,并且:如果大明某局赌赢了或大明手里赌资总数少于0元时,退出while循环;否则继续下注,并实时减少大明手里的赌资总数。

<br>图10-1 预期的资金变化图
2. 久赌必输<br><br>
运行上述程序,你会发现大明每次都会赚钱,似乎大明的“必胜”方案是正确的,每天都会稳定地赚1元。但真实情况必然如此吗?<br>
请修改上述程序,将赌博天数分别改为365(一年)、1825(五年)、3650(十年),再多次运行并观察结果。<br>
由于随机数的参与,程序每次运行的结果都可能不一样。在作者的机器上,某次运行结果如图10-2所示:大明刚开始时每天赢一元,很开心,到了大约200多天时,破产出局。<br>

<br>图10-2 久赌必输
请上传一个Word文档,该文档应包括:
* 补充完整的源代码;
* 如图10-1所示的30天资金变化图;
* 如图10-2所示的十年资金变化图。
<br><br>
注意:变化图的标题开头请加上你的学号;由于随机数的参与,读者在自己计算机上得到的运行结果很可能与图10-1,图10-2有区别。
答案:程序正确及质量5分;
两个图表分别是3分及2分。