Du kan inte välja fler än 25 ämnen
Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
|
- package utils
-
- import (
- "math/rand"
- "time"
- )
-
- // RED_PACKET_MIN_MONEY 红包最小金额(单位:分)
- const RED_PACKET_MIN_MONEY = 1
-
- // DoubleAverage 二倍均值算法
- func DoubleAverage(count, amount int64) int64 {
- if count == 1 {
- return amount
- }
- //计算出最大可用金额
- max := amount - RED_PACKET_MIN_MONEY*count
- //计算出最大可用平均值
- avg := max / count
- //二倍均值基础上再加上最小金额 防止出现金额为0
- avg2 := 2*avg + RED_PACKET_MIN_MONEY
- //随机红包金额序列元素,把二倍均值作为随机的最大数
- rand.Seed(time.Now().UnixNano())
- x := rand.Int63n(avg2) + RED_PACKET_MIN_MONEY
- return x
- }
|