关于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 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 表示一个初始基数

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

你可能感兴趣的:(游戏,算法,qq)