强化装备算法_____________有兴趣的来看看吧!

solohac 2011-06-03 11:18:58

如果游戏中有件装备强化1~3阶成功率25%,失败无变化装备还在;强化4~5阶成功率25%,失败会退1阶。
1. 请算出平均玩家要强化几次才能到3阶(写出算法)。
2. 平均又要几次才会强化到5阶(写出算法)。


朋友给的一道题,昨晚思考了好久,未解。。
...全文
595 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2011-06-03
  • 打赏
  • 举报
回复
游戏编程
solohac 2011-06-03
  • 打赏
  • 举报
回复
x(n)=x(n-1)+0.25*1+0.75*(x(n)) n=1~3
代入1
=> x(1) = x(0) + 0.25 +0.75 * x(1)
=> x(1) = 0.25+ 0.75*x(1)
=> x(1) = 0.25

合成到1需要0.25次?
还是我理解错了?
shenchenman 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ganzhezeng2 的回复:]
为什么 x(1)=4;
[/Quote]

我又写错了,应该是x(0)=0
solohac 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lactoferrin 的回复:]
什么叫平均几次?抛硬币,平均抛几次得到正面?
[/Quote]
叫一百个玩家去强到3
平均次数 = 每人的次数之和/100
solohac 2011-06-03
  • 打赏
  • 举报
回复
为什么 x(1)=4;
shenchenman 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ganzhezeng2 的回复:]
引用 9 楼 ganzhezeng2 的回复:
引用 7 楼 shenchenman 的回复:
x(n)=0.25*1+0.75*(x(n-1)+x(n)) n=>3

不解

这个的意思是代入强化次数,算出来应该是概率吧?
目的是求平均次数哦,也就是玩家大概平均几次可以合成到3
[/Quote]

算的就是次数。用到期望的知识,将等式两边求期望则认为等式右边函数式为固定值
Lactoferrin 2011-06-03
  • 打赏
  • 举报
回复
什么叫平均几次?抛硬币,平均抛几次得到正面?
shenchenman 2011-06-03
  • 打赏
  • 举报
回复
是写错了
x(1)=4;
x(n)=x(n-1)+0.25*1+0.75*(x(n)) n=1~3
x(n)=x(x-1)+0.25*1+0.75*(x(n-1)+x(n)) n=>3
比如3到4,1/4的概率是1次,3/4的概率降级到2,从2到3是x(3)次,从3到4是x(4)次
solohac 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ganzhezeng2 的回复:]
引用 7 楼 shenchenman 的回复:
x(n)=0.25*1+0.75*(x(n-1)+x(n)) n=>3

不解
[/Quote]
这个的意思是代入强化次数,算出来应该是概率吧?
目的是求平均次数哦,也就是玩家大概平均几次可以合成到3
solohac 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 super_admi 的回复:]
这个题目应该不能说“平均”,而应该说“最大可能”。因为可以强化永远不成功。

……
[/Quote]
确实可能永远都不成功
但是我觉得是有平均的可能的,总有一个趋向平均的值,而强化次数是整数
solohac 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shenchenman 的回复:]
x(n)=0.25*1+0.75*(x(n-1)+x(n)) n=>3
[/Quote]
不解
super_admi 2011-06-03
  • 打赏
  • 举报
回复
貌似上面有些不对……
shenchenman 2011-06-03
  • 打赏
  • 举报
回复
迭代就能算出了:
x(1)=4;
x(n)=0.25*1+0.75*(x(n)+1) n=1~3
x(n)=0.25*1+0.75*(x(n-1)+x(n)) n=>3
super_admi 2011-06-03
  • 打赏
  • 举报
回复
这个题目应该不能说“平均”,而应该说“最大可能”。因为可以强化永远不成功。

计算的方法:列出次数的概率分布表即可。比如:

1次:0
2次:0
3次:0.25*0.25*0.25
4次:即前面三次失败一次,最后一次一定成功的概率
……
turing-complete 2011-06-03
  • 打赏
  • 举报
回复
题目中的信息,迷惑人的地方或者说是信息冗余。

这就不存在范围了,而是3介 和 5介的问题
龙井茶 2011-06-03
  • 打赏
  • 举报
回复
留名围观,期待答案!
ryfdizuo 2011-06-03
  • 打赏
  • 举报
回复
游戏逻辑设计。。。
solohac 2011-06-03
  • 打赏
  • 举报
回复
其实就是一道算概率的题目吧
只学过概率论,压力很大
DX_deepblue 2011-06-03
  • 打赏
  • 举报
回复
貌似真正游戏中强化装备成功的概率是伪概率,当然,你这题没涉及到
alweeq86 2011-06-03
  • 打赏
  • 举报
回复
算了下 平均要20次

int _tmain(int argc, _TCHAR* argv[])
{
int sum=0;
const int N=10000;//1000次
double ave=0;
for (int i=0;i<N;++i)
{
int Lever=0;
int s;
int count=0;
while(Lever<5)
{
s=rand()%4;
if(s==1)//s=1表示成功
{
Lever++;
count++;
}
else
{
if(Lever>=3) Lever--;
}
}
sum+=count;
}
ave=double(sum)/N;
cout<<ave;
}
加载更多回复(33)

64,663

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧