很久很久很久以前,大概11个月以前,我去学习如何计算声望分
为什么要去学习这个呢?因为steem节点返回的用户声望分是这个样子的:
话说你若能从'reputation': '131708387059711'
这里分辨出来这个声望分是多少,是高还是低,那么我表示佩服。至少,我是看不出来啊。
声望分计算公式
于是千般周折、百般差找,我总算找到了计算公式:
/**
This is a rough approximation of log10 that works with huge digit-strings.
Warning: Math.log10(0) === NaN
The 0.00000001 offset fixes cases of Math.log(1000)/Math.LN10 = 2.99999999~
*/
function log10(str) {
const leadingDigits = parseInt(str.substring(0, 4));
const log = Math.log(leadingDigits) / Math.LN10 + 0.00000001
const n = str.length - 1;
return n + (log - parseInt(log));
}
export const repLog10 = rep2 => {
if(rep2 == null) return rep2
let rep = String(rep2)
const neg = rep.charAt(0) === '-'
rep = neg ? rep.substring(1) : rep
let out = log10(rep)
if(isNaN(out)) out = 0
out = Math.max(out - 9, 0); // @ -9, $0.50 earned is approx magnitude 1
out = (neg ? -1 : 1) * out
out = (out * 9) + 25 // 9 points per magnitude. center at 25
// base-line 0 to darken and < 0 to auto hide (grep rephide)
out = parseInt(out)
return out
}
https://github.com/steemit/condenser/blob/master/app/utils/ParsersAndFormatters.js
你让我解释一下?对不起,我也不懂,我多说只能照猫画虎移植一下。
如何与新手 25 声望分说再见?
通过分析上述公式,我发现一些很有趣的事情。
比如这句:
out = Math.max(out - 9, 0); // @ -9, $0.50 earned is approx magnitude 1
也就是说,
reputation值在-1000000000 以及 1000000000 之间的用户声望分都是25
新用户注册reputation值为0,亦即声望分为25。26级为1291549665.01,其实这个还是超级快的,只要你的帖子被大鲸鱼点到,声望分可能一下子就到30以上了。
Score | Reputation | Difference |
---|---|---|
25 | 1000000000.00 | 1000000000.00 |
26 | 1291549665.01 | 291549665.01 |
27 | 1668100537.20 | 376550872.19 |
28 | 2154434690.03 | 486334152.83 |
29 | 2782559402.21 | 628124712.18 |
30 | 3593813663.80 | 811254261.60 |
一些有意思的数据
'reputation'为零的用户有多少?
reputation=0亦即用户注册后声望分没加没减,大致分为两部分用户
- 一部分是沉寂号,注册后就没有进行任何操作
- 另一部分可能仅用于点赞和转账等金钱操作
通过数据库查询,'reputation':0 的用户为: 179611
声望分小于25的用户
我们之前说过
reputation值在-1000000000 以及 1000000000 之间的用户声望分都是25
声望分小于25,亦即用户因为一些错误行为/或者别人恶意踩踏,导致reputation < -1000000000
通过数据库查询,声望分小于25的用户: 43394
声望分大于25的用户
相对于从未活跃的用户或者声望分小于25的用户,我们可以认为声望分大于25的用户,是在STEEMIT上活跃并且好评大于差评的用户
通过数据库查询,声望分大于25的用户: 52538
当前总用户数
我们找出了未活跃用户,以及声望分小于25(差评多余好评) 以及声望分大于25(好评多于差评)的用户,那么当前一共有多少用户呢?
通过数据库查询,当前总用户数: 275573
从上边这组数据看出什么?
通过上边一组数据,我们不难得出以下结论
- 未活跃用户(从未发帖和回复)占比为:
65.18%
- 活跃且差评多于好评的用户占比为:
15.75%
- 活跃且好评多于差评的用户占比为:
19.07%
排除掉被差评误伤的,也就是说仅有不到20%的好评用户在发帖和回复。
结论
- 有大约65%的注册用户从未发帖和回复
- 其余35%的活跃用户,差评用户和好评用户比例接近 1:1 (15%:19%)
补充说明:
- 被downvote的原因很多,所以被差评的用户不一定是坏用户
- 以上所有数据来源于 steemdata
- 数据库有延迟,并且数据在随时刷新,具体数字仅供参考
- 经过我核实,数据库有些用户信用计算的不对,应该是25被计算成负的,所有数据仅供参考