网易游戏笔试题

笔试题目

英雄每次升级都需要花费宝石,已知英雄每升一级成功的概率如下:

  • 英雄升级,从0级升到1级,概率100%。
  • 从1级升到2级,有1/3的可能成功,1/3的可能停留原级,1/3的可能下降到0级;
  • 从2级升到3级,有1/9的可能成功;4/9的可能停留原级;4/9的可能下降到1级。
  • 每次升级要花费一个宝石,不管成功还是停留还是降级。

求英雄从0级升到3级平均花费的宝石数目?

【来自】微信公众好:算法爱好者

答案 : 30

说明:

当我在算法爱好者微信公众号里看到此题下面网友的评论后发现,有几个网友用编程语言做出来了,之后我打算用javascript来实现。 由于我个人还是比较熟悉javascript, 所以我就提供了javascript代码,两种版本,码农级别的和优化精简级别的。 欢迎java, python, c,c## 等大神们在下面评论,并提供你们的思路及代码。谢谢!

用代码验证结果:

普通码农级别:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var foo=(level)=>{
if(level == 0) return 1;//从0级到1级
if(level == 1){//从1级到2级
var r = 3*Math.random();
if(r<1){
return 2//升级到2级
}else if(r<2){
return 1//保留原级
}else{
return 0//降级到0级
}
}
if(level == 2){
var r=Math.random()*9;
if(r<1){//从2级升级到3级
return 3
}else if(r<5){
return 2//保留原级
}else{
return 1//降级到1级
}
}
}
var bar = () => {//计算一次能拿的宝石数目
var lv = 0;
var gem = 0;
while (lv != 3) {
lv = foo(lv);
gem++;
}
return gem;
}
(function (t) {
var gs = 0;
for (var i = 0; i < t; i++)
gs += bar();
console.log(gs / t);
})(1000);

大神级别(对我来说是大神级别 ^_^):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var n=100000;/*执行次数*/
var result = ((t)=>{
var sum=0,i=0;
while(i<t){sum += getGemCount();i++}
return Math.round(sum/t);
function getGemCount(){
var level=0,gem=0;
while(level<3){
level=(function(lv){
switch(lv){
case 0:return 1;break;
case 1:
var r1=Math.floor(Math.random()*3);
switch(r1){
case 0:return 2;break;
case 1:return 1;break;
case 2:return 0;break;
}
case 2:
var r2=Math.random()*9;
return r2<1? 3:r2<5 ? 2:1;
break;
}
})(level);
gem++;
}
return gem;
}
})(n);
console.log(result);

提示:

本人大学毕业不久,工作经验不长,而且是一名少数民族,维吾尔族,汉语是我第二语言,因此在难免会有一些错别字,或者有使用不当的词,或者在提供的代码中有bug, 或者解释思路有错误,你若发现错误请在下面通过评论来指出错误,或者通过扫描下面的微信二维码,加我微信来告知我。下面我还提供了我的个人微信二维码,如果想跟我讨论技术问题,就加我个人微信。另外我还提供了我的个人微信转账二维码,如果你觉得我发布的内容有用,或者支持我的努力,请给我打个赏吧,让我更有动力去发布更有用的技术干货。谢谢!






 博主个人微信  给博主打赏吧 谢谢!
文章目录
  1. 1. 笔试题目
    1. 1.1. 答案 : 30
    2. 1.2. 说明:
    3. 1.3. 用代码验证结果:
      1. 1.3.1. 普通码农级别:
      2. 1.3.2. 大神级别(对我来说是大神级别 ^_^):
  2. 2. 提示:
,