【比购签到活动,通用抽奖算法】
如7月23日(星期一)的报道帖,即提取723楼的回复时间信息;
【说明:2012年8月1日开始,是从801楼起取值。】
Step2:将“基础数据”包含的数字,逐个相加后的结果值,作为“除数”;
假设723楼的回复时间信息为:2012-07-23 06:00:00
即:2 + 0 + 1 + 2 + 0 + 7 + 2 + 3 + 0 + 6 + 0 + 0 + 0 + 0 = 23; 则,“除数”为23。
Step3:将当天的星期数,作为“权值”,对“除数”进行加权;得到“加权除数”;
“权值”加在“除数”之前;即,得到“加权除数”123。
注:星期一至星期天的“权值”对应1~7区间的自然数。
Step4:提取当天总回复楼层的数值(简称“总楼层数”,下同),作为“被除数”;
将“被除数”除以“加权除数”,得到商的小数部分,作为“准备数”;
假设总楼层数是1234楼,即1234 / 123 = 10.03252033…
则“准备数”为03252033…
Step5:依据总楼层数的位数“x”、“准备数”,进行最终“准获奖楼层”的取值;
即,总楼层数是1234楼,则x=4;若是12345楼,则x=5;以此类推;
具体“准获奖楼层”取值规则
(1) 依据“x”的值,取“准备数”自左向右顺序,“x”位的数值,作为“楼层基数”;
即1234楼的“x”= 4;则得到“楼层基数”为0325。
(2) 若“楼层基数”小于总楼层数,则“楼层基数”即为“准获奖楼层”;
如325 < 1234,则325为“准获奖楼层”(诸如“0325”最前面的0,自然消除)。
(3) 若“楼层基数”大于总楼层数,且“x”≤ 4时;
则将“楼层基数”减去总楼层数,得到的结果数值,即为“准获奖楼层”。
(4) 若“楼层基数”大于总楼层数,且“x”≥ 5 时;
则使用0~“权值”区间的自然数,从“权值”开始依次递减替换“楼层基数”左起第1位;
直至获得小于总楼层数的数值,则该数值即为“准获奖楼层”。
注:此过程中,一旦替换后的数值小于总楼层数,则停止后续数值的替换,
当前小于总楼层数的数值,即为“准获奖楼层”。
(5) 若Step4中,“被除数”除以“加权除数”,正好除尽,则商的数值即为“准获奖楼层”。
(6) 若组成“楼层基数”的数值每一位都是0,则商的整数部分的数值即为“准获奖楼层”。
【友情提示】本活动抽奖算法,得出的“准获奖楼层”数值,仅作为活动的数据支持;
最终,该数值对应楼层的用户,是否有资格获得奖品,则依据其在参与具体活动的内容是否有效;
有效性的判定,则依据具体活动描述的“规则”。