蓝桥杯之古代赌局
来源:互联网 发布:android 监听有线网络 编辑:程序博客网 时间:2024/05/02 04:54
【编程题】(满分23分)
俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。
有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下:
1. 若某一个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目赔付(即1比1的赔率)。
2. 若有两个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目的2倍赔付(即1比2的赔率)。
3. 若三个骰子上的数字都与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目的6倍赔付(即1比6的赔率)。
4. 若玩家所押注匣子号与某个骰子示数乘积等于另外两个骰子示数的乘积,则玩家拿回自己的押注,庄家也不赔付(流局)。
5. 若以上规则有同时满足者,玩家可以选择对自己最有利的规则。规则执行后,则庄家收获所有匣子上剩余的押注。
乍一看起来,好像规则对玩家有利,庄家吃亏。但经过大量实战,会发现局面很难说,于是怀疑是否庄家做了手脚,庄家则十分爽快地说:可以由玩家提供骰子,甚至也可以由玩家来投掷骰子。
你的任务是:通过编程模拟该过程。模拟50万次,假定只有1个玩家,他每次的押注都是1元钱,其押注的匣子号是随机的。再假定庄家有足够的资金用于赔付。最后计算出庄家的盈率(庄家盈利金额/押注总金额)。
【输入、输出格式要求】
俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。
有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下:
1. 若某一个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目赔付(即1比1的赔率)。
2. 若有两个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目的2倍赔付(即1比2的赔率)。
3. 若三个骰子上的数字都与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目的6倍赔付(即1比6的赔率)。
4. 若玩家所押注匣子号与某个骰子示数乘积等于另外两个骰子示数的乘积,则玩家拿回自己的押注,庄家也不赔付(流局)。
5. 若以上规则有同时满足者,玩家可以选择对自己最有利的规则。规则执行后,则庄家收获所有匣子上剩余的押注。
乍一看起来,好像规则对玩家有利,庄家吃亏。但经过大量实战,会发现局面很难说,于是怀疑是否庄家做了手脚,庄家则十分爽快地说:可以由玩家提供骰子,甚至也可以由玩家来投掷骰子。
你的任务是:通过编程模拟该过程。模拟50万次,假定只有1个玩家,他每次的押注都是1元钱,其押注的匣子号是随机的。再假定庄家有足够的资金用于赔付。最后计算出庄家的盈率(庄家盈利金额/押注总金额)。
【输入、输出格式要求】
程序无输入,程序运行输出庄家的盈率,四舍五入保留到小数后3位。
思路:直接枚举。
AC代码:
/*古代赌局 * * */public class T11 {static double sum = 0;public static void main(String[] args) {int a1,a2,a3,b;for(int i = 1;i<=500000;i++){a1 = (int)(Math.random()*6+1);a2 = (int)(Math.random()*6+1);a3 = (int)(Math.random()*6+1);b = (int)(Math.random()*6+1);f(a1,a2,a3,b);}double ans = sum/500000;System.out.printf("%.4f",ans);//System.out.println("sum = "+sum);}public static void f(int a1,int a2,int a3,int b){if(a1 == b && a2 == b && a3 == b){sum -= 6;return;}if(a1 == b&&a2 == b||a1 == b&&a3 == b|| a2 == b&&a3 == b){sum -= 2;return;}if(a1 == b || a2 == b || a3 == b){sum -= 1;return;}if(!(b*a1 == a2*a3)&&!(b*a2 == a1*a3)&&!(b*a3 == a1*a2)){sum += 1;return;}}}
0 0
- 蓝桥杯之古代赌局
- 古代赌局-蓝桥杯
- 蓝桥杯 古代赌局
- 古代赌局
- 古代赌局
- 古代赌局
- 古代赌局
- 关于随机数---古代赌局
- 古代赌局——蓝桥杯2012年Java决赛
- 蓝桥杯决赛真题——古代赌局
- 古代赌局java随机模拟
- 2013-11-01 实验之古代赌局玩家押注(概率公平原理)
- 古代赌局 俗话说:十赌九输。(转载)
- 赌局
- 赌局
- 古代赌局 俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。 有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把
- 霍金赌局
- 古代智慧与当代爱情 之 《仲夏夜之梦》
- 使用.NET REACTOR使用方法,制作软件许可证,做一个简单的许可证系统步骤
- 面试题9(变形)跳台阶
- PhotoShop制作GIF图片
- 一个Demo展示Storyboard的强大
- express4.x学习记录——关于路由控制器的写法
- 蓝桥杯之古代赌局
- c++在遍历vector数组的时候,发生的传出引用的错误,特别记录一下
- 公开课机器学习笔记(16)学习理论一 经验风险最小化ERM
- CSDN博客迁移
- 调试信息;
- 数据库的一点问题
- linux kernel 时钟系统的前世今生
- 在做日本方面项目的感受
- ios-day17-01(UIView的拖拽(跟随手指移动))