vRp.CD2g_test/utils/random
kercylan98 bbf70fab02 test: server 包完善部分测试用例 2024-01-15 17:27:29 +08:00
..
README.md docs: 优化 README.md 可读性 2024-01-15 17:27:02 +08:00
dice.go feat: random 包新增 Dice 掷骰子和 Probability 概率函数 2023-08-02 15:10:32 +08:00
ip.go test: server 包完善部分测试用例 2024-01-15 17:27:29 +08:00
number.go feat: maths 新增 MakeLastDigitsZero 函数,用于将传入数字的末位 n 位设置为 0 2023-12-04 14:00:30 +08:00
probability.go feat: random 包通过权重和概率随机产生一个成员支持返回产生成员的索引或 Key 2023-09-19 12:37:53 +08:00
probabillity_test.go feat: random 包新增 ProbabilitySlice 函数,用于基于概率产生一个结果,当概率总和小于 1 会发生未命中的情况,概率总和大于 1 将等比缩放至 1 2023-09-15 14:11:30 +08:00
random.go 辅助函数 2023-04-23 11:23:54 +08:00
string.go 辅助函数 2023-04-23 11:23:54 +08:00
weight.go fix: random 包按权重产生结果更改为 int64 2023-10-09 14:16:46 +08:00

README.md

Random

Go doc

暂无介绍...

目录导航

列出了该 package 下所有的函数及类型定义,可通过目录导航进行快捷跳转 ❤️

展开 / 折叠目录导航

包级函数定义

函数名称 描述
Dice 掷骰子
DiceN 掷骰子
NetIP 返回一个随机的IP地址
Port 返回一个随机的端口号
UsablePort 随机返回一个可用的端口号,如果没有可用端口号则返回 -1
IPv4 返回一个随机产生的IPv4地址。
IPv4Port 返回一个随机产生的IPv4地址和端口。
Int64 返回一个介于min和max之间的int64类型的随机数。
Int 返回一个介于min和max之间的的int类型的随机数。
Duration 返回一个介于min和max之间的的Duration类型的随机数。
Float64 返回一个0~1的浮点数
Float32 返回一个0~1的浮点数
IntN 返回一个0~n的整数
Bool 返回一个随机的布尔值
ProbabilitySlice 按概率随机从切片中产生一个数据并返回命中的对象及是否未命中
ProbabilitySliceIndex 按概率随机从切片中产生一个数据并返回命中的对象及对象索引以及是否未命中
Probability 输入一个概率,返回是否命中
ProbabilityChooseOne 输入一组概率,返回命中的索引
RefreshSeed 暂无描述...
ChineseName 返回一个随机组成的中文姓名。
EnglishName 返回一个随机组成的英文姓名。
Name 返回一个随机组成的中文或英文姓名
NumberString 返回一个介于min和max之间的string类型的随机数。
NumberStringRepair 返回一个介于min和max之间的string类型的随机数
HostName 返回一个随机产生的hostname。
WeightSlice 按权重随机从切片中产生一个数据并返回
WeightSliceIndex 按权重随机从切片中产生一个数据并返回数据和对应索引
WeightMap 按权重随机从map中产生一个数据并返回
WeightMapKey 按权重随机从map中产生一个数据并返回数据和对应 key

详情信息

func Dice() int

掷骰子

  • 常规掷骰子将返回 1-6 的随机数

func DiceN(n int) int

掷骰子

  • 与 Dice 不同的是,将返回 1-N 的随机数

func NetIP() net.IP

返回一个随机的IP地址


func Port() int

返回一个随机的端口号


func UsablePort() int

随机返回一个可用的端口号,如果没有可用端口号则返回 -1


func IPv4() string

返回一个随机产生的IPv4地址。


func IPv4Port() string

返回一个随机产生的IPv4地址和端口。


func Int64(min int64, max int64) int64

返回一个介于min和max之间的int64类型的随机数。


func Int(min int, max int) int

返回一个介于min和max之间的的int类型的随机数。


func Duration(min int64, max int64) time.Duration

返回一个介于min和max之间的的Duration类型的随机数。


func Float64() float64

返回一个0~1的浮点数


func Float32() float32

返回一个0~1的浮点数


func IntN(n int) int

返回一个0~n的整数


func Bool() bool

返回一个随机的布尔值


func ProbabilitySlice[T any](getProbabilityHandle func (data T) float64, data ...T) (hit T, miss bool)

按概率随机从切片中产生一个数据并返回命中的对象及是否未命中

  • 当总概率小于 1 将会发生未命中的情况
查看 / 收起单元测试

func TestProbabilitySlice(t *testing.T) {
	var awards = []int{1, 2, 3, 4, 5, 6, 7}
	var probability = []float64{0.1, 2, 0.1, 0.1, 0.1, 0.1, 0.1}
	for i := 0; i < 50; i++ {
		t.Log(random.ProbabilitySlice(func(data int) float64 {
			return probability[data-1]
		}, awards...))
	}
}


func ProbabilitySliceIndex[T any](getProbabilityHandle func (data T) float64, data ...T) (hit T, index int, miss bool)

按概率随机从切片中产生一个数据并返回命中的对象及对象索引以及是否未命中

  • 当总概率小于 1 将会发生未命中的情况

func Probability(p int, full ...int) bool

输入一个概率,返回是否命中

  • 当 full 不为空时,将以 full 为基数p 为分子,计算命中概率

func ProbabilityChooseOne(ps ...int) int

输入一组概率,返回命中的索引


func RefreshSeed(seed ...int64)


func ChineseName() string

返回一个随机组成的中文姓名。


func EnglishName() string

返回一个随机组成的英文姓名。


func Name() string

返回一个随机组成的中文或英文姓名

  • 以1/2的概率决定生产的是中文还是英文姓名。

func NumberString(min int, max int) string

返回一个介于min和max之间的string类型的随机数。


func NumberStringRepair(min int, max int) string

返回一个介于min和max之间的string类型的随机数

  • 通过Int64生成一个随机数当结果的字符串长度小于max的字符串长度的情况下使用0在开头补齐。

func HostName() string

返回一个随机产生的hostname。


func WeightSlice[T any](getWeightHandle func (data T) int64, data ...T) T

按权重随机从切片中产生一个数据并返回


func WeightSliceIndex[T any](getWeightHandle func (data T) int64, data ...T) (item T, index int)

按权重随机从切片中产生一个数据并返回数据和对应索引


func WeightMap[K comparable, T any](getWeightHandle func (data T) int64, data map[K]T) T

按权重随机从map中产生一个数据并返回


func WeightMapKey[K comparable, T any](getWeightHandle func (data T) int64, data map[K]T) (item T, key K)

按权重随机从map中产生一个数据并返回数据和对应 key