Question
事情的经过大概是这样子
- 前几天 R 社站长问作品集应该怎么排序?
- 作为写过几天增删改查的我就叭叭了一堆,先这样这样,在那样那样,最后这样这样,就排好了
- 然后站长贴了一个排序算法,不同于冒泡选择排序算法,经过一阵思考和分析后,感觉妙啊 ~~~
- 同时也觉得自己太过头发短见识短,孤陋寡闻了,沉浸在各种框架里殊不知解决核心问题的还是数学。
Answer
b3 的 markdown editor 数学公式支持 Katex
- Qviews = question views,通常这个数会很大,几万至几十万
- Qanswers = question answers,这个数相对于浏览量来说就非常小了,5-10 等等
- Qscore = question score,评分,完全是搜索问题的人觉得这个回答值多少分就点一分,可为负
- sum(Ascroes)不知道,不考虑
- Qage = question ages,问题创建了多久了,年龄,可能是 3 年,10 年,5 年等
- Qupdated = question updated,问题最近一次更新是多久了,可能是 1 年前,2 年前等等
好,我们带入具体数据分析一下
- 假设浏览量为 10W,回答数量为 10 个,分数为 5 分,10 年前,最后一次更新 5 年前
- log10 很好的控制了 10W 这么大的数字,以 10 为底 10W 的对数为 4,最后得出 16,10W 直接缩减到了 16 这个数,可见 log 针对大浏览量是很好用的一种缩小数的算法.
- 在看第二部分,(回答数量*分数)/5,带入数据最后得出 10,假如 5 个,2 分呢,数就算出了 2,回答量和分数相互牵制作用非常大,回答多可能分数是负的,标志这个问题应该属于灌水问题,回答多分数多说明很多人碰到了这个问题,所以这个地方大,分子会大,整体排序优先级会上去等等...
- 占整体分值比重最高的就是下面的时效数,时间线拉的越长,越长时间的问题不经过更新,代表这个问题已经过时了,也就没有必要排在前面了,所以时间线拉的越长,分母会越来越大,整体排序分值就会降的很低
不得不说,算法排序,比机械排序优秀太多了,可以带入许多理念,许多实际的问题通过一个公式解决掉了。就挺妙的。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于