84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
QQ活跃天数计算公式: (等级 + 4) * 等级 = 活跃天数那么问题来了,已知活跃天数的情况下,如何逆推等级呢?例如:活跃天数是100,(8 + 4) 8 = 96,(9 + 4) 9 = 117,100高于96但是低于117,所以是8级。如何用程序去逆推出来?(数学弱,求小喷!)
闭关修行中......
求一下方程解,去掉负数那个;方程自己笔算。。
function aa(y){ return parseInt(Math.pow(y+4,1/2)-2) } console.log(aa(100))
a方+4a=b
a方+4a+4=b+4
a=正根号(b+4)-2
代码的话,参考crp205的回答。
一元二次方程
我觉得这种算法,不需要逆推。而是将等级对应的天数列出来。然后通过区间的形式直接获取等级。公式归公式,但是逆推的时候不好推!如下为等级对应的天数(100级以内)
给个简单的版本。用的解一元二次方程的公式。
public class Solution { public static int getLevel(int days) { int i = 16 + 4 * days; double d = Math.floor(Math.sqrt(i)); return (-4 + (int) d) >> 1; } }
//公式法:x=-b/2/a+Math.pow(Math.pow(b,2)-4*a*c,0.5)/2/a; function getQQRank(day) { day = 0 - +day; let rank = Math.floor(-2 + Math.pow(16 - 4 * day, 0.5) / 2); return rank } console.log(getQQRank(96)) //8 console.log(getQQRank(100)) //8 console.log(getQQRank(117)) //9
这就是个拟合的问题嘛……
拟合
取前10个数,二阶拟合:结果在左边那个框里,95%的置信区间。p3太小了,可以直接省掉。所以结果就是:f(x) = x^2 + 4 * x
f(x) = x^2 + 4 * x
以下的方法通过new Input(),在括号中传入当前活跃天数实例化,然后通过该实例的level方法取得当前等级。比如var le=new Input(100) console.log(le.level())//打印输出8
js初学者,有错误希望大家更正,勿喷。 var iGetANumber=0; function Input(val){//对象构造函数,传入活跃天数 this.val=val; } Input.prototype.level=function(){//对象取得等级方法 return getLevel(this.val) } function getLevel(input){ iGetANumber if(iGetANumber*iGetANumber>=input+4){ var j=iGetANumber; iGetANumber=0 return j-3 }else{ iGetANumber++; return getLevel(input) } }
感觉到我Python被无视了,补一下:
def QQ(x): for n in range(1,101): if n*n + n*4 < x: continue else: return n
求一下方程解,去掉负数那个;方程自己笔算。。
a方+4a=b
a方+4a+4=b+4
a=正根号(b+4)-2
代码的话,参考crp205的回答。
一元二次方程
我觉得这种算法,不需要逆推。而是将等级对应的天数列出来。然后通过区间的形式直接获取等级。公式归公式,但是逆推的时候不好推!如下为等级对应的天数(100级以内)
给个简单的版本。用的解一元二次方程的公式。
这就是个
拟合
的问题嘛……取前10个数,二阶拟合:
结果在左边那个框里,95%的置信区间。
p3太小了,可以直接省掉。
所以结果就是:
f(x) = x^2 + 4 * x
一元二次方程
感觉到我Python被无视了,补一下: