84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
需求 我有一个会员系统,每位会员发布文章后,发布文章次数+1 然后,我会发送1-200元的人民币 我想让发布文章越多的会员大奖的概率越大,但是不能超过200元。
业精于勤,荒于嬉;行成于思,毁于随。
首先假设我们给会员设置一个基准奖励金额 x,x 的值在 1-200 之间,发布文章越多 x 的值越大。这是合理的。至于 x 的算法,可以考虑类似这样的曲线,当横轴增加时,纵轴无限接近于 2。稍微修改一下公式,就能得出一个当文章数量增加时,基准金额无限接近于 200 元的算法。
有了这个基准奖励,我们可以在它周围设置一个“摇摆幅度”,使得奖励看起来有随机性。比如对某会员我得出基准奖励为 50 元,那么当摇摆幅度为 10 元时,我会随机从 40-60 元之间抽取一个值作为最终奖励。这样就能达到你的要求:发布文章越多,得奖的金额也越多,但也不是一个固定的值。
额,楼上的厉害啊。提供另一个思路:
均分概率 1-200 元,分 200 节点,平均分布概率是,每个节点 1/200。 即:1/200 + ... = 1
1/200 + ... = 1
引入文章数因素f(0 ~ 1): 第1 - 100 节点第 i 节点的概率为:(1 - f^i)/200 第 101 - 200 节点第 i 节点的概率为:(1 + f^(201-i))/200(1 - f^1)/200 + (1 - f^2)/200 + (1 - f^3)/200 + (1 - f^4)/200 + ... + (1 - f^100)/200 + (1 + f^100)/200 + ... + (1 + f^3)/200 + (1 + f^2)/200 + (1 + f^1)/200 = 1
f(0 ~ 1)
(1 - f^i)/200
(1 + f^(201-i))/200
(1 - f^1)/200 + (1 - f^2)/200 + (1 - f^3)/200 + (1 - f^4)/200 + ... + (1 - f^100)/200 + (1 + f^100)/200 + ... + (1 + f^3)/200 + (1 + f^2)/200 + (1 + f^1)/200 = 1
确定 f 值 f 值如上面童鞋所话,是arctan函数,极限值为 1.
这个的缺点是:中间隔断,没有按照曲线平滑增长。
首先假设我们给会员设置一个基准奖励金额 x,x 的值在 1-200 之间,发布文章越多 x 的值越大。这是合理的。至于 x 的算法,可以考虑类似这样的曲线,当横轴增加时,纵轴无限接近于 2。稍微修改一下公式,就能得出一个当文章数量增加时,基准金额无限接近于 200 元的算法。
有了这个基准奖励,我们可以在它周围设置一个“摇摆幅度”,使得奖励看起来有随机性。比如对某会员我得出基准奖励为 50 元,那么当摇摆幅度为 10 元时,我会随机从 40-60 元之间抽取一个值作为最终奖励。这样就能达到你的要求:发布文章越多,得奖的金额也越多,但也不是一个固定的值。
额,楼上的厉害啊。提供另一个思路:
均分概率
1-200 元,分 200 节点,平均分布概率是,每个节点 1/200。
即:
1/200 + ... = 1
引入文章数因素
f(0 ~ 1)
:第1 - 100 节点第 i 节点的概率为:
(1 - f^i)/200
第 101 - 200 节点第 i 节点的概率为:
(1 + f^(201-i))/200
(1 - f^1)/200 + (1 - f^2)/200 + (1 - f^3)/200 + (1 - f^4)/200 + ... + (1 - f^100)/200 + (1 + f^100)/200 + ... + (1 + f^3)/200 + (1 + f^2)/200 + (1 + f^1)/200 = 1
确定 f 值
f 值如上面童鞋所话,是arctan函数,极限值为 1.
这个的缺点是:中间隔断,没有按照曲线平滑增长。