开发者社区 问答 正文

java抽奖算法

一共有3分,一天可以进行无数次抽奖,最高获得3分,可以是1+1+1也可以是2+1
也可以是1+2,分别是每次抽奖获得的奖励数,这个怎么做呢?

展开
收起
蛮大人123 2016-02-21 15:12:32 2400 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    publicclass LotteryTool {
    
    private double factor;
    private double probability;
    private Random rand;
    
    private LotteryTool(double probability, long expireTime, int reduce){
    this.factor = (double) System.currentTimeMillis() / expireTime;
    this.probability = probability * Math.pow(factor, reduce);
    this.rand = new Random(System.currentTimeMillis());
    }
    
    public static LotteryTool getInstance(double probability, longexpireTime,
    int reduce) {
    return new LotteryTool(probability, expireTime, reduce);
    }
    
    public boolean isLucky(long expected) {
    long token = generateLong();
    expected = expected % (int) (1 / probability);
    if (expected == token) {
    return true;
    }
    return false;
    }
    2019-07-17 18:45:59
    赞同 展开评论
问答分类:
问答标签:
问答地址: