美文网首页
go实现不同概率抽奖

go实现不同概率抽奖

作者: 彳亍口巴 | 来源:发表于2022-10-26 09:47 被阅读0次

在抽奖时,奖品池会有不同的奖品,不同的奖品价格不一样,或者稀有度也不一样,价格低或者稀有度低的奖品,我们希望他它出现的概率高一点,而价格高或者稀有度高的奖品,我们希望它出现的概率低一点 比如现在有四种类型的产品,要出现的概率比例是 80:10:5:5


package main

import (
    "fmt"
    "math/rand"
    "time"
)

var (
    one   int32
    two   int32
    three int32
    four  int32
)

func main() {
    rand.Seed(time.Now().Unix())
    lottery()
}

func lottery() {
    for a := 0; a < 100; a++ {
        res := Algorithm()
        if res <= 8000 {
            one++
            continue
        }
        if res <= 9000 {
            two++
            continue
        }
        if res <= 9500 {
            three++
            continue
        }
        if res <= 10000 {
            four++
            continue
        }
    }
    fmt.Println(one, two, three, four)
}

func Algorithm() int {
    start := 0
    var end int
    //probabilities,一共几个概率事件,另外各自概率是多少 必须相加=10000
    probabilities := []int{8000, 1000, 500, 500}
    rand := rand.Intn(10000) //0-10000的随机数共10000个数
    for _, probability := range probabilities {
        end += probability
        if start <= rand && end > rand {
            return rand
        }
        start = end
    }
    return -1

}

在函数Algorithm中probabilities := []int{8000, 1000, 500, 500}将1000以内的数据划分为4个区域,分别是0-8000,8000-9000,9000-9500,9500-10000
每次都产生一个10000以上的随机数,然后判断随机数处于哪一个分区即可

相关文章

  • go实现不同概率抽奖

    在抽奖时,奖品池会有不同的奖品,不同的奖品价格不一样,或者稀有度也不一样,价格低或者稀有度低的奖品,我们希望他它出...

  • php实现刮刮卡大转盘抽奖概率

    php实现刮刮卡大转盘抽奖概率 本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单...

  • PHP实现按概率抽奖

    先上核心代码 代码是核心抽奖功能,还有其它未完善功能比如开始时间结束时间,还有商品库存的减少等,这些需要等到具体项...

  • 柚币抽奖压测报告

    1. 概率验证: 抽奖概率主要包括2个方面: 奖品概率:后台设置奖品的获奖概率,验证抽奖获得的奖品是否符合概率分布...

  • 抽奖算法

    最近要实现一个抽奖的功能;根据权重来决定奖品;其实就是数学里的概率问题;概率越大被选中的机会就越大;简单实现了一个...

  • PHP概率抽奖

    说明 大多数活动或游戏都会有转盘等抽奖活动,以下方法实现简单的生成转盘奖品 逻辑代码 结果:谢谢参与!

  • 晚会抽奖概率

    我以为可以参与抽奖的只有到场的老师们,结果!是在线全杭州的老师! 整个杭州的好几千的老师,再挑选100个中奖名额…...

  • php实现抽奖的简单概率算法

    配置数组(v代表概率) $prize_arr = array( '0' => array('id'=>1,'pri...

  • 按照奖品概率分布抽奖的实现

    原文:https://www.fanhaobai.com/2017/05/draw-by-prob.html 需求...

  • 【Java 实战】实现大转盘抽奖

    项目场景 实现一个大转盘抽奖的功能,能后台自定义奖项,各奖项中奖概率,奖品数量,当日抽奖最大次数等。 一、设计思路...

网友评论

      本文标题:go实现不同概率抽奖

      本文链接:https://www.haomeiwen.com/subject/brdazrtx.html