84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
需求我有一个会员系统,每位会员发布文章后,发布文章次数+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.
这个的缺点是:中间隔断,没有按照曲线平滑增长。