关于QQ等级需要小时数引发的算法联想

这是一个在游戏中比较通用的递增数据,如下:

//1 20
//2 50
//3 90
//4 140
//5 200


//6 270
//7 350
//8 440
//12 900
//16 1520
//32 5600
//48 12240

这些数据来自于QQ以前的升级规则 左边为等级,右边为所需小时数

不知道大家看出来什么规律了没有 ,对 每两个等级的差值 (30,40,50,60...)这样的递增;

这个就是规律,记得有个求和公式=(首项+尾项)*项数/2 ;类似于梯形公式

下面按照这个规律给出 求第N级的时候所需要的小时数,用JAVA代码实现

int disc_grow = 10; int disc_base = 20; for(int t_level=1;t_level<=48;t_level++){ System.out.println(t_level+":"+(disc_base + ((disc_base+disc_grow)+(disc_base+disc_grow)+disc_grow*(t_level-2))*(t_level-1)/2)); }

int t_level = N;(变量)

int disc_grow = 10;

int disc_base = 20;

(disc_base + ((disc_base+disc_grow)+(disc_base+disc_grow)+disc_grow*(t_level-2))*(t_level-1)/2);

注:t_level 表示第几级

disc_grow 表示差值每次递增量

disc_base 表示一个初始基数

这个算法用的地方比较多,当然你可以用程序写一个方法模拟实现,但是用数学的方法我觉得更为巧妙。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值