网站要实现实现QQ那样的升级,即一级一颗星星,四级一个月亮,4个月亮(16级)一个太阳。若是单纯固定的每一级对应多少积分,则很容易就会达到4个太阳。发现网易的积分制度很有趣,不是单纯的固定多少分升级,而是级别愈高,升级愈难,用Excel分析后,得到了一些公式:每一级别都比上一级多7X,X初始值是4,每高一级,自增2,如图:

public class CountUserGrade {
final static int INCREMENT = 2;
final static int PARAMETER = 4;
final static String CLASS_Z = "<img border='0' src='/common/style/images/class0.png' width='16' height='16'>";
final static String CLASS_A = "<img border='0' src='/common/style/images/class1.png' width='16' height='16'>";
final static String CLASS_B = "<img border='0' src='/common/style/images/class2.png' width='16' height='16'>";
final static String CLASS_C = "<img border='0' src='/common/style/images/class3.png' width='16' height='16'>";
final static String CLASS_D = "<img border='0' src='/common/style/images/class4.png' width='16' height='16'>";
/**
* 根据用户的参考积分(荣誉值)计算用户等级
* */
public static int countgrade(int glory) {
int grade = 0;
int k = 0;
int j = INCREMENT;
for(grade = 0; grade < 65; grade++){
j += INCREMENT;
k = k + PARAMETER * j;
if(k > glory)
break;
}
return grade;
}
/**
* 根据用户的等级显示图片
* */
public static String setpic(String grade) {
String pic = "";
int g = Integer.parseInt(grade);
if(g >= 64){
pic = CLASS_D;
return pic;
}
if(g <= 0){
pic = CLASS_Z;
return pic;
}
int c = g / 16;
if(c > 0) {
for(int i = 0; i < c; i++) {
pic = pic + CLASS_C;
}
}
int bg = g % 16;
int b = bg / 4;
if(b > 0) {
for(int i = 0; i < b; i++) {
pic = pic + CLASS_B;
}
}
int a = g % 4;
if(a > 0) {
for(int i = 0; i < a; i++) {
pic = pic + CLASS_A;
}
}
return pic;
}
}
说明:1.这里的积分是参考积分(荣誉值),参考积分与积分一块儿增加,当发生扣积分的情况时,参考积分并不扣除,它将作为级别的计算参照。
2.我这里的步进(INCREMENT)为2,倍数(PARAMETER)为4,一个太阳等于4个月亮,一个月亮等于4个星星;0级为灰色的星星,最大级别为64,超过64级用另一种图标标识,类似JE的“资深会员”。
3.附件的excel里面有推算公式,关于“步进”、“倍数”表格里有解释。
分享到:
相关推荐
该算法基于梯形规则和辛普森规则,通过逐步增加内部节点来提高精度,并利用线性插值误差公式进行迭代,从而达到较高的计算效率和准确性。在本次任务中,我们要计算的是函数 `f(x) = sin(x) / x` 在区间 `[0, 1]` 上...
PID(比例-积分-微分)控制器是一种广泛应用的自动控制理论中的控制算法,它通过结合当前误差、历史误差积累和误差变化率来调整控制输出,从而实现系统性能优化。本篇将详细介绍标题和描述中提到的几种PID算法,并...
在验证程序正确性时,可以先手动计算积分值,然后与程序计算的结果进行比较,看两者是否接近。由于数值计算的精度限制,实际程序计算的结果可能会与理论值略有差异。 通过这样的SCL编程实践,不仅能够掌握SCL语言的...
数据挖掘关联规则算法数据集
PID控制器是一种在自动化控制领域广泛应用的反馈控制算法,它的全称是比例-积分-微分控制器。在嵌入式系统中,PID算法被用于精确调节各种物理量,如温度、速度、位置等。本代码库提供了多种PID算法的实现,包括基本...
数值积分,运用龙贝格法进行计算,详细看算法实现中的备注部分。
根据最新更新的QQ积分规则,本文将详细解读积分的计算、管理以及如何更好地利用积分规则,帮助用户最大化其利益。 首先,我们需要了解QQ积分的基本转换标准,这也是整个积分规则的基础。根据官方说明,1元人民币...
SOC计算的目的是便于用户了解剩余电量,同时也为SOH、SOP和SOE的计算提供数据基础,SOC是SOX中最重要的一个算法] (安时积分法是一种电池电量计量的基础方法,它采用AH累积的方法,对动态的锂电池进行实时的SOC估算) ...
在这个环境中,有时我们需要对某些过程变量进行积分运算,以实现如累计流量、能量计算等功能。本文将详细介绍如何在TIA博途中进行积分运算。 积分运算在数学上是对函数图像下方区域的求解,即面积的计算。在实际...
10.2 关联规则算法原理 10.3 分层搜索经典算法-Apriori算法 10.4 并行挖掘算法 10.5 增量更新挖掘算法 10.6 多层关联规则挖掘 10.7 多维关联规则挖掘 10.8 约束性关联规则挖掘 10.9 数量关联规则挖掘 10.10 负关联...
FFT是一种高效的算法,用于执行傅里叶变换,它可以极大地减少计算量,特别是在处理大量数据时。在声场模拟中,FFT常用于计算声信号的频谱,以便分析其频率特性。 在MATLAB中,利用这些函数可以构建一个完整的瑞利...
在C#编程语言中,积分计算是数值分析领域的一个重要组成部分。积分是微积分的基本概念,用于求解面积、体积、平均值等实际问题。在本篇内容中,我们将深入探讨如何在C#中实现积分的计算,主要关注两种方法:科特克斯...
分别写出变步长梯形法与 Romberge法计算定积分的算法,编写程序上机调试出结果, 要求所编程序适用于任何类型的定积分,即能解决这一类问题,而不是某一个问题
"Dynamic_Newmark-β法_Newmark-β_三种算法计算结构动力响应_杜哈梅积分_"这一主题涉及了三种常用的方法,它们在工程计算中扮演着关键角色。这些方法包括杜哈梅积分法(Duhamel's Integral)、Newmark-β法以及时域...
在介绍积分选择算法及其在全局优化领域的应用时,首先需要了解最优化问题的基本概念。最优化问题关注于在一定约束条件下,找到一个目标函数的最优值,这可能涉及到最小化或最大化目标函数。而在全局优化领域,目标是...
编程时,需要定义误差、积分项、微分项和控制输出等变量,并根据实时误差计算这三个部分的贡献,然后将它们相加得到最终的控制信号。为了优化控制性能,还需要调整Kp、Ki和Kd的值,这通常通过试错法或自动调参算法...
这个压缩包中的"积分运算库文件SCL算法"可能包含了一系列预定义的函数块(FB)或系统服务(SFB),这些是预先编写的SCL代码模块,专门用于执行积分运算。这些库文件简化了开发者的工作,因为他们无需从头开始编写...
**基于DSP的积分分离PID控制算法详解** 积分分离PID控制算法是一种在数字信号处理器(DSP)平台上实现的高效控制策略,常用于自动化控制领域。它结合了传统的比例积分微分(PID)控制器的优势,并对积分项进行了...
2013清单工程量计算规则 2013清单工程量计算规则