rand

package
v2.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
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) Int

func (*PseudoRandom) Int() int

Int 返回一个非负的伪随机整数 @return @1 int 生成的随机整数

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

func NewRand(rng Random, safe ...bool) *Rand

NewRand 创建一个新的随机数生成器 @param rng Random 随机数生成器实例(如*rand.Rand、*PseudoRandom或*TrueRandom等实现了Random接口的类型) @param safe ...bool 可选,是否启用并发安全模式(使用互斥锁) @return @1 *Rand 随机数生成器实例

func (*Rand) Digits

func (r *Rand) Digits(length int, hasLeadingZero ...bool) string

Digits 生成指定长度的数字字符串 @param length int 字符串长度 @param hasLeadingZero ...bool 可选,是否允许以0开头 @return @1 string 生成的数字字符串

func (*Rand) Duration

func (r *Rand) Duration(min, max time.Duration) time.Duration

Duration 生成[min,max]范围内的时间间隔 @param min time.Duration 最小时间间隔 @param max time.Duration 最大时间间隔 @return @1 time.Duration 生成的时间间隔

func (*Rand) ExpFloat64

func (r *Rand) ExpFloat64() float64

ExpFloat64 返回一个服从指数分布的64位浮点数,速率参数(lambda)为1,均值为1 @return @1 float64 生成的指数分布随机数

func (*Rand) Float32

func (r *Rand) Float32() float32

Float32 返回[0.0,1.0)范围内的伪随机32位浮点数 @return @1 float32 生成的随机浮点数

func (*Rand) Float32R

func (rd *Rand) Float32R(min, max float32) float32

Float32R 生成[min,max)范围内的32位浮点数 @param min float32 最小值 @param max float32 最大值 @return @1 float32 生成的32位浮点数

func (*Rand) Float64

func (r *Rand) Float64() float64

Float64 返回[0.0,1.0)范围内的伪随机64位浮点数 @return @1 float64 生成的随机浮点数

func (*Rand) Float64R

func (rd *Rand) Float64R(min, max float64) float64

Float64R 生成[min,max)范围内的64位浮点数 @param min float64 最小值 @param max float64 最大值 @return @1 float64 生成的64位浮点数

func (*Rand) Int

func (r *Rand) Int() int

Int 返回一个非负的伪随机整数 @return @1 int 生成的随机整数

func (*Rand) Int32

func (r *Rand) Int32() int32

Int32 返回一个非负的伪随机31位整数 @return @1 int32 生成的随机整数

func (*Rand) Int32N

func (r *Rand) Int32N(n int32) int32

Int32N 返回[0,n)范围内的非负伪随机32位整数 @param n int32 范围上限(不包含),n必须大于0 @return @1 int32 生成的随机整数

func (*Rand) Int32R

func (rd *Rand) Int32R(min, max int32) int32

Int32R 生成[min,max]范围内的32位整数 @param min int32 最小值 @param max int32 最大值 @return @1 int32 生成的32位整数

func (*Rand) Int64

func (r *Rand) Int64() int64

Int64 返回一个非负的伪随机63位整数 @return @1 int64 生成的随机整数

func (*Rand) Int64N

func (r *Rand) Int64N(n int64) int64

Int64N 返回[0,n)范围内的非负伪随机64位整数 @param n int64 范围上限(不包含),n必须大于0 @return @1 int64 生成的随机整数

func (*Rand) Int64R

func (rd *Rand) Int64R(min, max int64) int64

Int64R 生成[min,max]范围内的64位整数 @param min int64 最小值 @param max int64 最大值 @return @1 int64 生成的64位整数

func (*Rand) IntN

func (r *Rand) IntN(n int) int

IntN 返回[0,n)范围内的非负伪随机整数 @param n int 范围上限(不包含),n必须大于0 @return @1 int 生成的随机整数

func (*Rand) IntR

func (rd *Rand) IntR(min, max int) int

IntR 生成[min,max]范围内的整数 @param min int 最小值 @param max int 最大值 @return @1 int 生成的整数

func (*Rand) Letters

func (r *Rand) Letters(length int) string

Letters 生成指定长度的字母字符串 @param length int 字符串长度 @return @1 string 生成的字母字符串

func (*Rand) Lucky

func (r *Rand) Lucky(probability float64, base ...float64) bool

Lucky 根据概率抽取幸运值 @param probability float64 概率值 @param base ...float64 可选概率基数,默认为100 @return @1 bool 是否命中

func (*Rand) NormFloat64

func (r *Rand) NormFloat64() float64

NormFloat64 返回一个服从标准正态分布的64位浮点数(均值=0,标准差=1) @return @1 float64 生成的正态分布随机数

func (*Rand) Perm

func (r *Rand) Perm(n int) []int

Perm 返回[0,n)范围内整数的伪随机排列切片 @param n int 排列长度 @return @1 []int 随机排列后的整数切片

func (*Rand) Shuffle

func (r *Rand) Shuffle[T any](list []T)

Shuffle 打乱切片 @param list []T 待打乱的切片

func (*Rand) Str

func (r *Rand) Str(seed string, length int) string

Str 生成指定长度的字符串 @param seed string 字符种子 @param length int 字符串长度 @return @1 string 生成的字符串

func (*Rand) Symbols

func (r *Rand) Symbols(length int) string

Symbols 生成指定长度的特殊字符字符串 @param length int 字符串长度 @return @1 string 生成的特殊字符字符串

func (*Rand) Uint

func (r *Rand) Uint() uint

Uint 返回一个伪随机无符号整数 @return @1 uint 生成的随机无符号整数

func (*Rand) Uint32

func (r *Rand) Uint32() uint32

Uint32 返回一个伪随机32位无符号整数 @return @1 uint32 生成的随机无符号整数

func (*Rand) Uint32N

func (r *Rand) Uint32N(n uint32) uint32

Uint32N 返回[0,n)范围内的非负伪随机32位无符号整数 @param n uint32 范围上限(不包含),n必须大于0 @return @1 uint32 生成的随机无符号整数

func (*Rand) Uint64

func (r *Rand) Uint64() uint64

Uint64 返回一个伪随机64位无符号整数 @return @1 uint64 生成的随机无符号整数

func (*Rand) Uint64N

func (r *Rand) Uint64N(n uint64) uint64

Uint64N 返回[0,n)范围内的非负伪随机64位无符号整数 @param n uint64 范围上限(不包含),n必须大于0 @return @1 uint64 生成的随机无符号整数

func (*Rand) UintN

func (r *Rand) UintN(n uint) uint

UintN 返回[0,n)范围内的非负伪随机无符号整数 @param n uint 范围上限(不包含),n必须大于0 @return @1 uint 生成的随机无符号整数

func (*Rand) Weight

func (rd *Rand) Weight[T any](fn func(v T) float64, list ...T) (int, T, bool)

Weight 权重随机,权重合计无效(<=0)时返回 false @param fn func(v T) float64 权重计算函数 @param list ...T 待抽取的元素列表 @return @1 int 命中元素的下标,未命中时为-1 @return @2 T 命中的元素,未命中时为零值 @return @3 bool 是否命中

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) Int

func (r *TrueRandom) Int() int

Int 返回一个非负的真随机整数 @return @1 int 生成的随机整数

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 生成的随机无符号整数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL