去中心化中奖率随想(按用户中奖)
一般程序里写中奖率的时候,是这么实现的。
比方说 一等奖是 1%,二等奖是 9%
那么生成一个[1-100]的随机数,如果随机数是1就认为中了一等奖,随机数是2-10就认为中二等奖。
可能会考虑一些问题
- 为了避免并发问题,随机前要加个锁,中完奖要记下来,避免超了。
- 随机数对应的奖品如果已经没了要再次随机,或者直接不中奖。
- 大奖刚开始的时候不能被中走。
等等,都是站在静态的中奖里考虑的,然而可能会遇到一些情况:
- 有人刷奖,小奖是营销传播用的,达不到营销目的。
- 需要尽量让第一次参与的人至少中个最小奖,增加复购。
- 第二次可以不中,之后偶尔要中一次。
- 把中奖的人区域分散,增加区域传播效果。
- 大奖可能要发给某位忠实用户。
想了想也都是能实现的,毕竟现在干啥都得登录,大部分操作都是扫码微信内进行:用户标示,地理位置, 以前有没有参与过,有没有分享过都能查到。
所以到底什么是公平性?有机器干预,没人为干预的系统,算不算公平的?
公平只是天上掉馅饼的空想,凭什么你头大?当然这种公平抽奖还是存在的,能想到的都是存在的。