首先,根据需求,我所设计的方案是要求:积分高的用户获得奖品的概率高,但是不能让一些积分少的用户没有概率获得奖品,我的设计思路如下:
首先,积分排名位于0-30000的用户总体获得奖品的概率是25%,30001-40000的用户获得概率是25%,40001-45000的用户获得概率是25%,45000-50000的用户的获得概率是25%。
第一步,创建一个用户类,里面包含用户的索引和积分值,这样创建的目的是,在对按照积分进行排序时,仍然可以知道用户本来的索引值。
第二步,通过一个用户数组来存放用户的信息,然后通过随机函数的方式进行初始化。
第三步,创建一个方法用于对对象数组按照积分进行排序,继承了Comparator。然后调用此方法对用户数组进行排序。
第四步,创建一个方法,用于抽奖,首先,随机生成0~3四个数,用来表示抽到每个区域的概率,0对应积分排名在0~30000的用户,以此类推。然后返回用户的排名。
第五步,主方法里调用此方法&#