我需要为我的一个 friend 计算一个等级系统。问题是我不知道该怎么做。他给了我一个终点,需要多少经验(31536000)才能达到最高等级(44) 级别应该随着你的等级而增加(例如递减级数或对数),我只是不知道如何向后甚至向前计算它。 我对 Java 没有那么丰富的经验,因为这对我来说已经很久了。
我需要从 1 到 44 级的每个级别所需的所有经验,并且您可以通过获得 31536000 经验来达到 44 级。 我已经测试了一些东西,但我真的不擅长,而且我知道这对我来说有点高。
public class level{
public static final double base_exp = 1;
public static final double exp_increase_per_level = 0.40;
public static final int max_level = 44;
public static int level (double exp){
int i = 1;
double test_exp = base_exp;
while (i<max_level) {
if (test_exp > exp){
return i;
}
test_exp = test_exp + test_exp * exp_increase_per_level;
i++;
}
return max_level;
}
public static double level_to_exp (int level) {
if(level == 1)
return base_exp;
else {
double prev = level_to_exp(level-1);
return prev + prev * exp_increase_per_level;
}
}
public static double level_to_total_exp (int level) {
if(level == 1)
return base_exp;
else {
return level_to_total_exp(level-1) + level_to_exp(level-1) * (1 + exp_increase_per_level);
}
}
public static void main(String []args){
System.out.println("to level 1,"+level_to_exp(1)+"exp");
System.out.println("to level 2,"+level_to_exp(2)+"exp");
System.out.println("to level 44,"+level_to_exp(44)+"exp");
System.out.println("Total exp to level 44" +level_to_total_exp(44)+" acuumulated");
}
}
最佳答案
这只是基础数学。您的模型似乎是:
score = base^level
因此,要从分数中获取级别:
log(score) = log(base^level) = level * log(base)
level = log(score) / log(base)
要计算base
,只需替换level=44
和score=whatever
,然后重新排列。
关于java - 用Java进行水平计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60359954/