Documentation
¶
Index ¶
- Constants
- type PseudoRandom
- func (*PseudoRandom) ExpFloat64() float64
- func (*PseudoRandom) Float32() float32
- func (*PseudoRandom) Float64() float64
- func (*PseudoRandom) Int() int
- func (*PseudoRandom) Int32() int32
- func (*PseudoRandom) Int32N(n int32) int32
- func (*PseudoRandom) Int64() int64
- func (*PseudoRandom) Int64N(n int64) int64
- func (*PseudoRandom) IntN(n int) int
- func (*PseudoRandom) N[Int intType](n Int) Int
- func (*PseudoRandom) NormFloat64() float64
- func (*PseudoRandom) Perm(n int) []int
- func (*PseudoRandom) Shuffle(n int, swap func(i, j int))
- func (*PseudoRandom) Uint() uint
- func (*PseudoRandom) Uint32() uint32
- func (*PseudoRandom) Uint32N(n uint32) uint32
- func (*PseudoRandom) Uint64() uint64
- func (*PseudoRandom) Uint64N(n uint64) uint64
- func (*PseudoRandom) UintN(n uint) uint
- type Rand
- func (r *Rand) Digits(length int, hasLeadingZero ...bool) string
- func (r *Rand) Duration(min, max time.Duration) time.Duration
- func (r *Rand) ExpFloat64() float64
- func (r *Rand) Float32() float32
- func (rd *Rand) Float32R(min, max float32) float32
- func (r *Rand) Float64() float64
- func (rd *Rand) Float64R(min, max float64) float64
- func (r *Rand) Int() int
- func (r *Rand) Int32() int32
- func (r *Rand) Int32N(n int32) int32
- func (rd *Rand) Int32R(min, max int32) int32
- func (r *Rand) Int64() int64
- func (r *Rand) Int64N(n int64) int64
- func (rd *Rand) Int64R(min, max int64) int64
- func (r *Rand) IntN(n int) int
- func (rd *Rand) IntR(min, max int) int
- func (r *Rand) Letters(length int) string
- func (r *Rand) Lucky(probability float64, base ...float64) bool
- func (r *Rand) NormFloat64() float64
- func (r *Rand) Perm(n int) []int
- func (r *Rand) Shuffle[T any](list []T)
- func (r *Rand) Str(seed string, length int) string
- func (r *Rand) Symbols(length int) string
- func (r *Rand) Uint() uint
- func (r *Rand) Uint32() uint32
- func (r *Rand) Uint32N(n uint32) uint32
- func (r *Rand) Uint64() uint64
- func (r *Rand) Uint64N(n uint64) uint64
- func (r *Rand) UintN(n uint) uint
- func (rd *Rand) Weight[T any](fn func(v T) float64, list ...T) (int, T, bool)
- type Random
- type TrueRandom
- func (r *TrueRandom) ExpFloat64() float64
- func (r *TrueRandom) Float32() float32
- func (r *TrueRandom) Float64() float64
- func (r *TrueRandom) Int() int
- func (r *TrueRandom) Int32() int32
- func (r *TrueRandom) Int32N(n int32) int32
- func (r *TrueRandom) Int64() int64
- func (r *TrueRandom) Int64N(n int64) int64
- func (r *TrueRandom) IntN(n int) int
- func (r *TrueRandom) N[Int intType](n Int) Int
- func (r *TrueRandom) NormFloat64() float64
- func (r *TrueRandom) Perm(n int) []int
- func (r *TrueRandom) Shuffle(n int, swap func(i, j int))
- func (r *TrueRandom) Uint() uint
- func (r *TrueRandom) Uint32() uint32
- func (r *TrueRandom) Uint32N(n uint32) uint32
- func (r *TrueRandom) Uint64() uint64
- func (r *TrueRandom) Uint64N(n uint64) uint64
- func (r *TrueRandom) UintN(n uint) uint
Constants ¶
const ( LetterSeed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" // 大小写字母 LetterLowerSeed = "abcdefghijklmnopqrstuvwxyz" // 小写字母 LetterUpperSeed = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" // 大写字母 DigitSeed = "0123456789" // 数字 DigitWithoutZeroSeed = "123456789" // 无0数字 SymbolSeed = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" // 特殊字符 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PseudoRandom ¶
type PseudoRandom struct{}
PseudoRandom 是基于 math/rand/v2 实现的伪随机数生成器。 它没有任何内部状态,底层 math/rand/v2 的全局函数是并发安全的, 因此可安全地用于多个 goroutine。
func (*PseudoRandom) ExpFloat64 ¶
func (*PseudoRandom) ExpFloat64() float64
ExpFloat64 返回服从指数分布的伪随机64位浮点数 速率参数(lambda)为1,均值为1 @return @1 float64 生成的指数分布随机数
func (*PseudoRandom) Float32 ¶
func (*PseudoRandom) Float32() float32
Float32 返回[0.0,1.0)范围内的伪随机32位浮点数 @return @1 float32 生成的随机浮点数
func (*PseudoRandom) Float64 ¶
func (*PseudoRandom) Float64() float64
Float64 返回[0.0,1.0)范围内的伪随机64位浮点数 @return @1 float64 生成的随机浮点数
func (*PseudoRandom) Int32 ¶
func (*PseudoRandom) Int32() int32
Int32 返回一个非负的伪随机31位整数 @return @1 int32 生成的随机整数
func (*PseudoRandom) Int32N ¶
func (*PseudoRandom) Int32N(n int32) int32
Int32N 返回[0,n)范围内的非负伪随机32位整数 @param n int32 范围上限(不包含),n必须大于0 @return @1 int32 生成的随机整数
func (*PseudoRandom) Int64 ¶
func (*PseudoRandom) Int64() int64
Int64 返回一个非负的伪随机63位整数 @return @1 int64 生成的随机整数
func (*PseudoRandom) Int64N ¶
func (*PseudoRandom) Int64N(n int64) int64
Int64N 返回[0,n)范围内的非负伪随机64位整数 @param n int64 范围上限(不包含),n必须大于0 @return @1 int64 生成的随机整数
func (*PseudoRandom) IntN ¶
func (*PseudoRandom) IntN(n int) int
IntN 返回[0,n)范围内的非负伪随机整数 @param n int 范围上限(不包含),n必须大于0 @return @1 int 生成的随机整数
func (*PseudoRandom) N ¶
func (*PseudoRandom) N[Int intType](n Int) Int
N 返回[0,n)范围内的伪随机整数,支持任意整数类型 @param n Int 范围上限(不包含),n必须大于0 @return @1 Int 生成的随机整数
func (*PseudoRandom) NormFloat64 ¶
func (*PseudoRandom) NormFloat64() float64
NormFloat64 返回服从标准正态分布(均值=0,标准差=1)的伪随机64位浮点数 @return @1 float64 生成的正态分布随机数
func (*PseudoRandom) Perm ¶
func (*PseudoRandom) Perm(n int) []int
Perm 返回[0,n)范围内整数的伪随机排列切片 @param n int 排列长度 @return @1 []int 随机排列后的整数切片
func (*PseudoRandom) Shuffle ¶
func (*PseudoRandom) Shuffle(n int, swap func(i, j int))
Shuffle 使用交换函数伪随机化元素顺序 @param n int 元素数量,n小于0时会panic @param swap func(i, j int) 交换索引i和j位置元素的函数
func (*PseudoRandom) Uint ¶
func (*PseudoRandom) Uint() uint
Uint 返回一个伪随机无符号整数 @return @1 uint 生成的随机无符号整数
func (*PseudoRandom) Uint32 ¶
func (*PseudoRandom) Uint32() uint32
Uint32 返回一个伪随机32位无符号整数 @return @1 uint32 生成的随机无符号整数
func (*PseudoRandom) Uint32N ¶
func (*PseudoRandom) Uint32N(n uint32) uint32
Uint32N 返回[0,n)范围内的非负伪随机32位无符号整数 @param n uint32 范围上限(不包含),n必须大于0 @return @1 uint32 生成的随机无符号整数
func (*PseudoRandom) Uint64 ¶
func (*PseudoRandom) Uint64() uint64
Uint64 返回一个伪随机64位无符号整数 @return @1 uint64 生成的随机无符号整数
func (*PseudoRandom) Uint64N ¶
func (*PseudoRandom) Uint64N(n uint64) uint64
Uint64N 返回[0,n)范围内的非负伪随机64位无符号整数 @param n uint64 范围上限(不包含),n必须大于0 @return @1 uint64 生成的随机无符号整数
func (*PseudoRandom) UintN ¶
func (*PseudoRandom) UintN(n uint) uint
UintN 返回[0,n)范围内的非负伪随机无符号整数 @param n uint 范围上限(不包含),n必须大于0 @return @1 uint 生成的随机无符号整数
type Rand ¶
type Rand struct {
// contains filtered or unexported fields
}
func NewRand ¶
NewRand 创建一个新的随机数生成器 @param rng Random 随机数生成器实例(如*rand.Rand、*PseudoRandom或*TrueRandom等实现了Random接口的类型) @param safe ...bool 可选,是否启用并发安全模式(使用互斥锁) @return @1 *Rand 随机数生成器实例
func (*Rand) Digits ¶
Digits 生成指定长度的数字字符串 @param length int 字符串长度 @param hasLeadingZero ...bool 可选,是否允许以0开头 @return @1 string 生成的数字字符串
func (*Rand) Duration ¶
Duration 生成[min,max]范围内的时间间隔 @param min time.Duration 最小时间间隔 @param max time.Duration 最大时间间隔 @return @1 time.Duration 生成的时间间隔
func (*Rand) ExpFloat64 ¶
ExpFloat64 返回一个服从指数分布的64位浮点数,速率参数(lambda)为1,均值为1 @return @1 float64 生成的指数分布随机数
func (*Rand) Float32R ¶
Float32R 生成[min,max)范围内的32位浮点数 @param min float32 最小值 @param max float32 最大值 @return @1 float32 生成的32位浮点数
func (*Rand) Float64R ¶
Float64R 生成[min,max)范围内的64位浮点数 @param min float64 最小值 @param max float64 最大值 @return @1 float64 生成的64位浮点数
func (*Rand) Int32N ¶
Int32N 返回[0,n)范围内的非负伪随机32位整数 @param n int32 范围上限(不包含),n必须大于0 @return @1 int32 生成的随机整数
func (*Rand) Int32R ¶
Int32R 生成[min,max]范围内的32位整数 @param min int32 最小值 @param max int32 最大值 @return @1 int32 生成的32位整数
func (*Rand) Int64N ¶
Int64N 返回[0,n)范围内的非负伪随机64位整数 @param n int64 范围上限(不包含),n必须大于0 @return @1 int64 生成的随机整数
func (*Rand) Int64R ¶
Int64R 生成[min,max]范围内的64位整数 @param min int64 最小值 @param max int64 最大值 @return @1 int64 生成的64位整数
func (*Rand) IntR ¶
IntR 生成[min,max]范围内的整数 @param min int 最小值 @param max int 最大值 @return @1 int 生成的整数
func (*Rand) Lucky ¶
Lucky 根据概率抽取幸运值 @param probability float64 概率值 @param base ...float64 可选概率基数,默认为100 @return @1 bool 是否命中
func (*Rand) NormFloat64 ¶
NormFloat64 返回一个服从标准正态分布的64位浮点数(均值=0,标准差=1) @return @1 float64 生成的正态分布随机数
func (*Rand) Str ¶
Str 生成指定长度的字符串 @param seed string 字符种子 @param length int 字符串长度 @return @1 string 生成的字符串
func (*Rand) Uint32N ¶
Uint32N 返回[0,n)范围内的非负伪随机32位无符号整数 @param n uint32 范围上限(不包含),n必须大于0 @return @1 uint32 生成的随机无符号整数
func (*Rand) Uint64N ¶
Uint64N 返回[0,n)范围内的非负伪随机64位无符号整数 @param n uint64 范围上限(不包含),n必须大于0 @return @1 uint64 生成的随机无符号整数
type Random ¶
type Random interface {
Int() int
IntN(n int) int
Int32() int32
Int32N(n int32) int32
Int64() int64
Int64N(n int64) int64
Uint() uint
UintN(n uint) uint
Uint32() uint32
Uint32N(n uint32) uint32
Uint64() uint64
Uint64N(n uint64) uint64
Float32() float32
Float64() float64
ExpFloat64() float64
NormFloat64() float64
Perm(n int) []int
Shuffle(n int, swap func(i, j int))
}
type TrueRandom ¶
type TrueRandom struct{}
TrueRandom 是基于 crypto/rand 实现的真随机数生成器。 它没有任何内部状态,底层 crypto/rand.Read 是并发安全的, 因此可安全地用于多个 goroutine。
func (*TrueRandom) ExpFloat64 ¶
func (r *TrueRandom) ExpFloat64() float64
ExpFloat64 返回服从指数分布的真随机64位浮点数 速率参数(lambda)为1,均值为1,使用逆变换法生成 @return @1 float64 生成的指数分布随机数
func (*TrueRandom) Float32 ¶
func (r *TrueRandom) Float32() float32
Float32 返回[0.0,1.0)范围内的真随机32位浮点数 @return @1 float32 生成的随机浮点数
func (*TrueRandom) Float64 ¶
func (r *TrueRandom) Float64() float64
Float64 返回[0.0,1.0)范围内的真随机64位浮点数 @return @1 float64 生成的随机浮点数
func (*TrueRandom) Int32 ¶
func (r *TrueRandom) Int32() int32
Int32 返回一个非负的真随机31位整数 @return @1 int32 生成的随机整数
func (*TrueRandom) Int32N ¶
func (r *TrueRandom) Int32N(n int32) int32
Int32N 返回[0,n)范围内的非负真随机32位整数 @param n int32 范围上限(不包含),n必须大于0 @return @1 int32 生成的随机整数
func (*TrueRandom) Int64 ¶
func (r *TrueRandom) Int64() int64
Int64 返回一个非负的真随机63位整数 @return @1 int64 生成的随机整数
func (*TrueRandom) Int64N ¶
func (r *TrueRandom) Int64N(n int64) int64
Int64N 返回[0,n)范围内的非负真随机64位整数 @param n int64 范围上限(不包含),n必须大于0 @return @1 int64 生成的随机整数
func (*TrueRandom) IntN ¶
func (r *TrueRandom) IntN(n int) int
IntN 返回[0,n)范围内的非负真随机整数 @param n int 范围上限(不包含),n必须大于0 @return @1 int 生成的随机整数
func (*TrueRandom) N ¶
func (r *TrueRandom) N[Int intType](n Int) Int
N 返回[0,n)范围内的真随机整数,支持任意整数类型 @param n Int 范围上限(不包含),n必须大于0 @return @1 Int 生成的随机整数
func (*TrueRandom) NormFloat64 ¶
func (r *TrueRandom) NormFloat64() float64
NormFloat64 返回服从标准正态分布(均值=0,标准差=1)的真随机64位浮点数 使用 Box-Muller 变换将均匀分布转换为标准正态分布 @return @1 float64 生成的正态分布随机数
func (*TrueRandom) Perm ¶
func (r *TrueRandom) Perm(n int) []int
Perm 返回[0,n)范围内整数的真随机排列切片 @param n int 排列长度 @return @1 []int 随机排列后的整数切片
func (*TrueRandom) Shuffle ¶
func (r *TrueRandom) Shuffle(n int, swap func(i, j int))
Shuffle 使用交换函数真随机化元素顺序 @param n int 元素数量,n小于0时会panic @param swap func(i, j int) 交换索引i和j位置元素的函数
func (*TrueRandom) Uint ¶
func (r *TrueRandom) Uint() uint
Uint 返回一个真随机无符号整数 @return @1 uint 生成的随机无符号整数
func (*TrueRandom) Uint32 ¶
func (r *TrueRandom) Uint32() uint32
Uint32 返回一个真随机32位无符号整数 @return @1 uint32 生成的随机无符号整数
func (*TrueRandom) Uint32N ¶
func (r *TrueRandom) Uint32N(n uint32) uint32
Uint32N 返回[0,n)范围内的非负真随机32位无符号整数 @param n uint32 范围上限(不包含),n必须大于0 @return @1 uint32 生成的随机无符号整数
func (*TrueRandom) Uint64 ¶
func (r *TrueRandom) Uint64() uint64
Uint64 返回一个真随机64位无符号整数 @return @1 uint64 生成的随机无符号整数
func (*TrueRandom) Uint64N ¶
func (r *TrueRandom) Uint64N(n uint64) uint64
Uint64N 返回[0,n)范围内的非负真随机64位无符号整数 @param n uint64 范围上限(不包含),n必须大于0 @return @1 uint64 生成的随机无符号整数
func (*TrueRandom) UintN ¶
func (r *TrueRandom) UintN(n uint) uint
UintN 返回[0,n)范围内的非负真随机无符号整数 @param n uint 范围上限(不包含),n必须大于0 @return @1 uint 生成的随机无符号整数