fox/xrand/rand.go

68 lines
950 B
Go
Raw Normal View History

2025-05-25 20:02:15 +08:00
package xrand
import (
"math/rand"
"time"
)
func init() {
rand.New(rand.NewSource(time.Now().UnixNano()))
}
var Int = rand.Int
func Intn(n int) int {
return rand.Intn(n)
}
func Int31() int32 {
return rand.Int31()
}
func Int31n(n int32) int32 {
return rand.Int31n(n)
}
func Int63() int64 {
return rand.Int63()
}
func Int63n(n int64) int64 {
return rand.Int63n(n)
}
func Uint32() uint32 {
return rand.Uint32()
}
func Uint64() uint64 {
return rand.Uint64()
}
func Float32() float32 {
return rand.Float32()
}
func Float64() float64 {
return rand.Float64()
}
func Perm(n int) []int {
return rand.Perm(n)
}
func Read(p []byte) (n int, err error) {
return rand.Read(p)
}
func Shuffle[T any](slice []T) {
rand.Shuffle(len(slice), func(i, j int) {
slice[i], slice[j] = slice[j], slice[i]
})
}
// RandomInt64 随机生成一个[min, max]之间的整数
func RandomInt64(min, max int64) int64 {
return Int63n(max-min) + min
}