一个游戏公司的面试题,boss掉4件装备,收集齐了,威力巨大
一个boss可能掉4件装备,几率一样,每次都会掉
一个玩家要平均杀多少次boss,才能把4件装备收集齐呢(不组队,装备拾取绑定)?
当然,收集齐了,威力巨大
[解决办法]
這個有定論?
[解决办法]
1/(1*13/4*2/4*1/4)
[解决办法]
参考暗黑的掉宝几率。大概得4k次吧
之前听同学说,一分钟一次墨菲斯托 一天一个多小时,得杀一个月,才能杀一套好装备。
[解决办法]
从小数学就不好,但是因为传奇打得多,根据经验,如果是这样的暴率,打怪数不会超过100就可以爆齐全了
[解决办法]
> > 一个boss可能掉4件装备,几率一样,每次都会掉
你的意思是说,这个boss一次掉一件装备?
[解决办法]
这是一个算数学期望的问题啦,计算方法是如下的:
设杀k次就刚好集齐4件的概率是f(k),那么E = /sum k*f(k),E就是平均次数,/sum是求和的意思
[解决办法]
就是你那个扔色子的题....
[解决办法]
f(k) = (3/4)^(k-1) - 3*(1/2)^(k-1) +3*(1/4)^(k-1) ,其中^表示乘方
[解决办法]
然后求和以后变形算一下就是E = 9.33333...
[解决办法]
8.333333
[解决办法]
这是个计算期望值的问题吧?首先列出概率函数
0 if( x <4)
f(x)= (0.25)^4 * (3/4)^(x-4) if( x> =4)
再计算f(x)的期望值,好像是求xf(x)的积分,不过我已经忘掉积分公式了。
[解决办法]
1+4/3+4/2+4/1=8.3333333333
楼上各位老大是否考虑复杂了?还是我考虑简单了.
[解决办法]
你不应该这样算,应该跟老总说:“全看GM怎么安排啦,要是GM安排的好,4次就集齐了,要是GM卡他,一辈子都打不到哦!”
[解决办法]
8.33333333333
[解决办法]
16次。4件装备。每次必掉一样。最多16次就行了。
[解决办法]
1/(0.75*0.5*0.25)
装备绑定就是可以交换。。。
10.67约等11次
[解决办法]
我的上一个帖子错了,函数应该是:
0 x <4
f(x) = f(x-1)+ 4*( 3^(x-1)-3*(2^(x-1)-1) )/4^x x> =4
因为每次都是独立同分布的,因此第x次才能取全装备的概率就是 前面x-1次取得3个装备的概率,前面x-1次取得3个装备的概率就是 3^(x-1)/4^(x-1) 减去 前面x-1次取得2个装备和1个装备的概率: 3* (2^(x-1) - 1)/4^(x-1)
用下面计算每个概率:可见8次打得装备的概率(包含8次以下)是0.622925,打到56次以上,概率基本就是1了。
计算得出数学期望值为8.3333333
#include <math.h>
#include <iostream>
using namespace std;
double f( int x )
{
double d = pow(4,x-1);
double u = pow(3,x-1)-3*(pow(2,x-1)-1);
return u/d;
}
int main()
{
double expectation = 0;
double sum = 0;
for( int i=4; i <=100; i++ )
{
sum+=f(i);
expectation+=i*f(i);
cout < <i < < " " < <sum < <endl;
}
cout < <expectation < <endl;
return 0;
}
[解决办法]
好简单啊
有零件装备时100%掉落有效
一件时75%掉落有效
二 50%
三 25%
那就是 1/100%+1/75%+1/50%+1/25%=1+1.33~3+2+4由于次数向上取整,所以就是1+2+2+4=9次
[解决办法]
1/(4/4)+1/(3/4)+1/(2/4)+1/(1/4)=1+1.33+2+4=8.33,取整就是9次
[解决办法]
playmud((猪头流氓)(抵制日货)(淡然若水))
_______________________
回答得简单通俗.....
loops(迷茫)
---------------
正在学习.......
[解决办法]
学习
[解决办法]
playmud
[解决办法]
晕了,概率1*3/4*2/4*1/4=3/32
所以需要32/3=10次
[解决办法]
这里的掉落几率是多少?
[解决办法]
32/3 = 10.67
11次吧
[解决办法]
题意应该是求多少次之后可以近似的百分百集齐四件装备吧。
绝对百分百是不可能的,比如倒霉得每次都得同一件(只不过次数很大时几率很小罢了)
假设杀N次可得四件装备,答案就是N取四件,四件各不相同的概率。求概率近似于1(或者0.8?)的N。
[解决办法]
playmud的思路很对。
4次期望的和就是总的期望,开始的思路绕弯路了。
[解决办法]
你问上帝去吧!
RP好一次,RP不好N次
[解决办法]
别撤了
答案是没有答案
无数次
因为每次掉一个
[解决办法]
记
P(u,k)
为前面k次杀boss掉出了指定u件装备的概率。
P(1,k)=(1/4)^k
P(2,k)=(1/2)^k-2*P(1,k)=(1/2)^k-2*(1/4)^k
P(3,k)=(3/4)^k-3*P(2,k)-3*P(1,k)=(3/4)^k-3*(1/2)^k+3*(1/4)^k
所以在第k次杀boss时掉出第4件装备的概率为
4*(P(3,k-1)*1/4)=P(3,k-1)
所以,次数的期望值为:
Sum{k*P(3,k)}
=Sum{k*(3/4)^k - 3*k*(1/2)^k+3*k*(1/4)^k}
由于
Sum{k*p^k}=p/(1-p)^2
所以上面结果为
3/4*16-3*1/2*4+3*1/4*16/9
=28/3
[解决办法]
去打几次,打累了,世界里喊下,互相交换,啥都有了,按概率,每件掉的几率是1/4,打不了多久,4种武器在服务器里肯定出全了,每种数量都差不多,威力再大,这武器一也成为垃圾武器了,因此说,一个玩家,打它几次就够了,嘿嘿
[解决办法]
无数次
[解决办法]
平均应该是8.33333次
第一件装备打到概率为1。。必暴。。那只用打1次boss
第二件概率为 3/4 。。。即除第一次之外的三件任一件 。。。那平均要打4/3次
类推。。。第三件平均打 4/2次。。。第四件平均 4/1次
[解决办法]
学习 ,mark
[解决办法]
绝对看RP 每次都只出一样的 打你一辈子
[解决办法]
说的都是概率 也许你点背 一辈子都答不出来
命好了 可能就打四次就出来了
[解决办法]
#include <iostream.h>
#include <time.h>
#include <stdlib.h>
bool isGetAll(int c,int a[])
{
for(int j=0;j <4;j++)
{
if(a[j]==-1) return false;
}
return true;
}
int main()
{
srand(time(0));
int times=0;
cout < < "Input test times: ";
cin> > times;
int r=0;
int array[4];
double sum=0;
for (int t=0;t <times;t++)
{
array[0]=-1;
array[1]=-1;
array[2]=-1;
array[3]=-1;
for (int i=1;;i++)
{
r=rand()%4;
array[r]=r;
if(isGetAll(r,array))
{
sum+=i;
break;
}
}
}
cout < < "Probability : " < <sum/times < <endl;
return 0;
}
不用争了
利用随机数模拟100000次结果: 8.33287
[解决办法]
向各位学习了!
[解决办法]
一个boss可能掉4件装备,几率一样,每次都会掉
一个玩家要平均杀多少次boss,才能把4件装备收集齐呢(不组队,装备拾取绑定)?
当然,收集齐了,威力巨大
---------------------------
题目不严谨,如果装备掉落几率为x%(x <=25),hoho,结论是啥?
[解决办法]
我认为是4的4次方
[解决办法]
1+4/3+4/2+4/1=8.3333333333
1/(1*3/4*2/4*1/4) = 10.6666666
这两种算法怎么结果不同? 意思上MS都合理.
在仔细想想(努力回忆概率知识ing)
原来前者是符合题目意思,后者则是
以打4次为一个样本点,
即{{0,1,2,3},{0,1,2,3},{0,1,2,3},...}
如果打4次就全部得全,则记成功一次
所以1/(1*3/4*2/4*1/4) = 10.6666666 是指需要多少个这样的4次单元
才的有一次是连续打4次就得全的期望值
如果是这样的话 是不是 打完64次 就必能收集到一套装备?
[解决办法]
MARK
[解决办法]
1+4/3+4/2+4/1=8.3333333333
1/(1*3/4*2/4*1/4) = 10.6666666
这两种算法怎么结果不同? 意思上MS都合理.
在仔细想想(努力回忆概率知识ing)
原来前者是符合题目意思,后者则是
以打4次为一个样本点,
即{{0,1,2,3},{0,1,2,3},{0,1,2,3},...}
如果打4次就全部得全,则记成功一次
所以1/(1*3/4*2/4*1/4) = 10.6666666 是指需要多少个这样的4次单元
才的有一次是连续打4次就得全的期望值
---------------------------
恩,看完才发现中招了。。。
10.6666666个人里有一个是只去了4次就拿全的
而平均拿全需要去8.33333次
注意是平均!最少4次,最多无限……永远拿不全
前边总有些人不明白平均的意思。。。
[解决办法]
把问题简单点。
抛钢蹦儿
一个人抛出2面,平均的次数
2次: 50%
3次: 25%
4次: 12.5%....
然后加权平均
2 * 50% + 3 * 25% + 4 * 12.5% .....
求和
然后推广到打boss的情况
[解决办法]
怎么楼上一群人,公式写了不少,逻辑能力那么差?
一共就4件装备,几率都一样,可以看成每件装备都是1/4几率。。。
我们知道,就算是1%的几率,也可能会有99次连贯性出现。。。
因此,最少取得4件装备就只需要杀BOSS 4次。。。
弄的那么多公式,有必要吗?
[解决办法]
楼上。。。问的不是最少,是平均
[解决办法]
是不是1*3/4*2/4*1/4啊
这样分析:
第一套掉啥都行:几率 1
第二次:只要不掉前面那套就行:概率 3/4
第三次:只要不掉前面两套就行 2/4
第四次:1/4
乘下来为9/64
楼主得分我两分呐 :)
[解决办法]
服了,绕来绕去的 “数学期望”
既然是期望,显然,不是实际情况,只是一种大概率而已
事实上,如果你运气够好
完全有可能一辈子打boss只能掉一种装备。。。
[解决办法]
一个boss可能掉4件装备,几率一样,每次都会掉
一个玩家要平均杀多少次boss,才能把4件装备收集齐呢(不组队,装备拾取绑定)?
补充:每次只会掉1个装备
----------------------------------------
由上可得每件装备的掉落几率为25%。
现在假设杀N次BOSS,那么每件装备的数量为N*25%=N/4,所以得到了N/4套装备。也就是说杀了N次BOSS得到了N/4套装备,所以平均 N/(N/4)=4次得到一套装备。
结论:平均4次就可以得到一套装备。
[解决办法]
8.333333333333333333333333333333333333
很简单的一个题目..熟悉下数学书 就好了..
[解决办法]
4的4次方
256次就行了
------解决方案--------------------
争论不休,模拟了一下,一百万次我跑了五次,平均值是8,最小值是4,最大值是(27,29,29,29,31)
主要代码如下:
int N = 1000000;
int[] result = {0,0,0,0};
Random random = null;
float sum = 0;
int max = 0, min = Integer.MAX_VALUE;
for (int i = 0; i < N; i++) {
int count = 0;
for (int j = 0; j < result.length; j++) {
result[j] = 0;
}
while (!success(result)) {
random = new Random();
int index = random.nextInt(4);
result[index] = 1;
count ++;
}
sum += count;
if(count > max) max = count;
if(count < min) min = count;
}
System.out.println(Math.ceil(sum / N));
System.out.println(min);
System.out.println(max);
[解决办法]
avg:8.33361335 max:74 min:4
4:9369942
5:14062713
6:14646955
7:13182088
8:11022726
9:8840827
10:6928325
11:5341484
12:4081079
13:3095524
14:2339247
15:1764939
16:1327841
17:996576
18:749006
19:562628
20:422285
21:316106
22:237364
23:178142
24:133645
25:100266
26:75142
27:56418
28:42111
29:31291
30:23618
31:19233
32:13017
33:9605
34:7467
35:5501
36:4120
37:3247
38:2373
39:1704
40:1347
41:1015
42:704
43:600
44:438
45:343
46:232
47:184
48:156
49:100
50:78
51:57
52:52
53:36
54:26
55:19
56:8
57:9
58:13
59:9
60:3
61:5
63:1
64:2
65:3
67:1
68:1
69:1
70:1
74:1
模拟1亿玩家的结果,可以看出,大多数还是可以在30次以内打全的,10次以内完成的玩家占一半多.
[解决办法]
求一个数学期望。
楼上有一种取巧的算法.
不过 loops(迷茫) 解释得最清除,其实是很简单得求数学期望,只不过第K次取得4种装备的概率要动下脑筋。
[解决办法]
真晕,简单的问题复杂化。。。。。。。。。。。。。。。。。。。。。。。。。。
[解决办法]
概论上的求数学的期望值
[解决办法]
1+4/3+4/2+4/1=8.3
得到第一件装备 1次
得到第二件装备 4/3次
[解决办法]
还是给个测试用例比较有说服力。
4件装备编号为1、2、3、4,假设某玩家击败BOSS共8次,得到的装备依次为1、4、4、3、2、2、1、3。按照前面提供的程序这个玩家得到了一套装备,但实际上是两套!因为你们把玩家以前得到的装备中不配套的部分丢弃了!
题目要求的是平均多少次得到一套装备,而不是连续打N次得到一套装备的概率。
[解决办法]
10.666666666666666666666666666666666666666666666666666666666666666
[解决办法]
杀Boss啊,很难的...
[解决办法]
绑定,有那么多箱子装吗
[解决办法]
WOW.haha
[解决办法]
征途
[解决办法]
各位老大们 :要求的是这个人平均要打多少次才能全部收集全
最少肯定是 4 次拉 那最多呢?谁知道会是多少次啊?
而且从4到 无穷之间的每个数都有可能的
你能算出来平均值么?
[解决办法]
这道题算的出来么...晕
平均杀多少次?最少当然是4次.
最多???怎么算?
第一次杀1
第二次 3/4几率打到另一个
第三次 2/4
第四次 1/4
4次杀完集齐的几率是0.09375
那么扩大100倍,那么就是9.375的几率
扩大1000倍,就是93.75
也就是说要杀4000次以上咯?达到100%几率?!!
肯定不能这样算!搞不懂这题```
[解决办法]
还是play说得对
[解决办法]
mark!
[解决办法]
怎么有些人MS没学过概率就来讨论这道题呢
比如上面的 gwt810120() snake1234(川流不息)
连概率里的基本概念都没弄清楚,知道什么叫期望吗?
知道什么叫概率吗?
[解决办法]
晕个鬼的,
这题是概率能解决的吗?
不要一看到么斯么斯都想到概率去的。
[解决办法]
1/24
[解决办法]
mark
[解决办法]
很简单 ,概率问题
第一件 肯定能出----是一次1
第二件 75%的概率,向上取整是 2次
第三件 50%的概率,2次
第四件 25%的概率,4次
因为要求算的是平均的 ,我想学过概率的人都应该知道硬币双面随机率问题
因此该答案肯定是1+2+2+4=9次