go_dreamfactory/utils/random.go
2022-11-09 14:18:03 +08:00

55 lines
901 B
Go

package utils
import (
"fmt"
"go_dreamfactory/sys/configure"
"math/rand"
"strings"
"github.com/Pallinder/go-randomdata"
)
func GenValidateCode(width int) string {
numeric := [10]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
r := len(numeric)
rand.Seed(configure.Now().UnixNano())
var sb strings.Builder
for i := 0; i < width; i++ {
fmt.Fprintf(&sb, "%d", numeric[rand.Intn(r)])
}
return sb.String()
}
// 随机一组随机数
// number >= start and < end num 随机数个数
func RandomNumbers(start, end, num int) []int {
if end-start < 0 || num > (end-start) {
return nil
}
if end-start == 1 {
n := randomdata.Number(start, end)
return []int{n}
}
var i int
arr := make([]int, num)
boo := make(map[int]int)
for {
if i == num {
break
}
n := randomdata.Number(start, end)
if _, ok := boo[n]; ok {
continue
}
boo[n] = i
arr[i] = n
i++
}
return arr
}