争论不休,模拟了一下,一百万次我跑了五次,平均值是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的几率