我有一个带有促销和用户的网站,用户可以在促销中注册,然后有1个随机用户可以赢得此促销。
现在为选择获胜者提供简单的公式:
$total_users = 100; //total users in promo
$winner_number = rand(1,$total_users);
但是现在用户可以邀请具有唯一链接的任何人进行促销,并且单击其链接可以增加此促销的邀请计数器:
$users[] = ['user_id'=>8,'invites'=>5];
$users[] = ['user_id'=>17,'invites'=>150];
$users[] = ['user_id'=>69,'invites'=>30];
$users[] = ['user_id'=>32,'invites'=>0];
... //array with users in promo
并且需要新的公式来选择获胜者取决于邀请(更多邀请-获胜的机会更多),但没有线性增长的获胜机会(避免作弊)
权重应如下图所示:
答案 0 :(得分:1)
首先,-每个用户获得的机会看起来像是:
机会= to_integer(1 +(奖励率*(1-1 /(斜率调整^邀请)))
例如,如果Bonus_rate为10,斜率调整为2,则:
通过调整奖金率和坡度调整,您可以控制每个用户获得的额外机会的数量。
下一步-您需要将该条目数绘制到某个空间(数组,数字线等)上,并在该空间中随机选择一个点以找到您的获胜者。
最简单的方法是为每个条目向数组添加一个元素,然后随机选择一个。