同学去百度面试 面试官问了一个概率问题 dota两人开黑 随机到一边的概率 一开始我想两个人 先拿出一个 去近卫的概率是一半 另一个人去近卫的概率也是一半,这样两人都在近卫的概率是14 同理都去天灾也是1/4 所以结果是1/2 但后来同学又说一个人先随机 随机到近卫的概率是1/2 另一个人再随机 随到近卫的概率就是4/9 相乘就是2/9 那么最后结果肯定不一样了 求解答
解决方案 »
- 有谁会用java写农历转公历
- 导入 java.util.ListIterator 与同一文件中定义的类型冲突
- UDP转发后的机制?
- 菜虫求一个RLE简单算法代码
- 求java写的哈弗曼编码译码系统 急用...
- 怎样跟当前日期得到上月的月末日期???
- 请问为何在链接的时候提示Jpcap中的GetDeviceList()错误
- 求一个简单的能同时实现类,方法,实例,属性的例子
- 我做的第一个java程序(只有一句话),帮忙
- 那里有用JAVA做的B/S结构软件的演示版或源代码下载呀?
- 关于synchronized关键字的问题,困扰了一个小时了,求大神!!!
- 关于Integer.parseInt的用法 在线等
所以,两个都去A的概率是5/10×4/9,都去一边的概率是5/10×4/9×2
boolean[] team = new boolean[10];
Random rand = new Random();
for (int i = 0; i < team.length; i++) {
team[i] = rand.nextBoolean();
}
int count = 0;
for (boolean b : team) {
if (b) {
count++;
}
}
System.out.println(count);而实际随机分配的结果的代码类似
boolean[] team = new boolean[10];
Random rand = new Random();
int a = team.length / 2;
for (int i = 0; i < team.length && a > 0; i++) {
int x = rand.nextInt(team.length - i);
if (x < a) {
team[i] = true;
a--;
}
}
int count = 0;
for (boolean b : team) {
if (b) {
count++;
}
}
System.out.println(count);
恒定5v5
这个随机应该是从10个人随机抽取5个做近卫,另外5个做天灾
2*(C2 2)*(C3 8)/(C5 10)=4/9
百度问dota 楼主你应该问什么是dota
http://topic.csdn.net/u/20091105/21/17f7bb24-b5c6-4ef5-82b8-d2ad76854482.html
Random rand = new Random();
int a = team.length / 2;
for (int i = 0; i < team.length && a > 0; i++) {
int x = rand.nextInt(team.length - i);
if (x < a) {
team[i] = true;
a--;
}
}
int count = 0;
for (boolean b : team) {
if (b) {
count++;
}
}
System.out.println(count);
Double Kills
Triple Kills
Ultrakill
Rampage
一共就4种情况:
A和B都在天灾
A和B都在近卫
A在天灾B在近卫
A在近卫B在天灾
每种情况的概率都是1/4,
在同一边的情况就1/4+1/4 = 1/2
试想即使近卫有了四个人,天灾一个没有,这时再来一个人,他去天灾和去近卫的概率仍为1/2。除非近卫满了,那么去天灾概率1。
4/9的就不是纯随机了,而是组合问题,这种方法会尽量保证两边人数平均,不会一边五个一边一个都没有。
DOTA用的是哪种,不太清楚。要是通常是两边人数差不多,那就是第二种,如果有时出现五个对零个的(概率1/32),那就应该是第一种。
这么考虑可以不
为什么1/2是错的呢?
得到1/2这个答案的原因是:
假设两人都在天灾,那么a在天灾的概率是1/2,b在天灾的概率是1/2,相乘得1/4.
两人在近卫的时候同理也是1/4.相加得到1/2.
可是这个分析是有问题的,就单个a来说在天灾的概率是1/2,单个b来说在天灾的概率也是1/2.
不过这两个事件不是相互独立的事件,所以不能用1/2*1/2.
(C(2,5)+C(2,5))/C(4,10)
还是像抽奖一样,在都不揭晓的时候,大家抽到奖的概率是一样的。好像dota里得到的界面结果都是同时的吧。不是很懂概率。