egmkang 服务端开发工程师

WarIII里面暴击随机

2014-12-30

WarIII里面的暴击/闪避的随机是很有意思的, 他不会连续暴击, 也不会连续闪避. 给玩家一种良好的游戏体验. 以前在巨人的时候, 从国外的网站上面搜索到过研究WarIII随机过程的文章, 现在已经忘了文章的具体地址, 只是当时把随机的数据还保留下来, 这边就贴在网上, 以供需要的人参考.

计算的过程比较简单, 只能精确到百分比的个位:

//N为百分比,比如70%就是70
//Table就是下面所附的快表
base = Table[N].基准值
bool Success(int base, int& lucky)
{
  int current_percentage = base * lucky;
  if (random_in(0, 100000) <= current_percentage)
  {
    return true;
  }
  ++lucky;
  return false;
}
概率(%) 基准值 最坏次数
1 16 6250
2 62 1613
3 139 720
4 245 409
5 380 264
6 544 184
7 736 136
8 955 105
9 1202 84
10 1475 68
11 1774 57
12 2098 48
13 2448 41
14 2823 36
15 3222 32
16 3645 28
17 4092 25
18 4562 22
19 5055 20
20 5570 18
21 6108 17
22 6668 15
23 7249 14
24 7851 13
25 8474 12
26 9118 11
27 9783 11
28 10467 10
29 11171 9
30 11895 9
31 12638 8
32 13400 8
33 14181 8
34 14981 7
35 15798 7
36 16633 7
37 17491 6
38 18362 6
39 19249 6
40 20155 5
41 21092 5
42 22036 5
43 22990 5
44 23954 5
45 24931 5
46 25987 4
47 27045 4
48 28101 4
49 29155 4
50 30210 4
51 31268 4
52 32329 4
53 33412 3
54 34737 3
55 36040 3
56 37322 3
57 38584 3
58 39828 3
59 41054 3
60 42265 3
61 43460 3
62 44642 3
63 45810 3
64 46967 3
65 48113 3
66 49248 3
67 50746 2
68 52941 2
69 55072 2
70 57143 2
71 59155 2
72 61111 2
73 63014 2
74 64865 2
75 66667 2
76 68421 2
77 70130 2
78 71795 2
79 73418 2
80 75000 2
81 76543 2
82 78049 2
83 79518 2
84 80952 2
85 82353 2
86 83721 2
87 85057 2
88 86364 2
89 87640 2
90 88889 2
91 90110 2
92 91304 2
93 92473 2
94 93617 2
95 94737 2
96 95833 2
97 96907 2
98 97959 2
99 98990 2
100 100000 1

上一篇 sequence point

下一篇 2014年总结

Comments