Documentation ¶
Overview ¶
* @Author: kamalyes 501893067@qq.com * @Date: 2024-11-09 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-13 23:20:55 * @FilePath: \go-toolbox\pkg\mathx\number.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2024-11-09 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-10 00:15:15 * @FilePath: \go-toolbox\pkg\mathx\proba.go * @Description: * 此文件定义了一个Proba结构体和相关的方法,用于根据给定的概率判断是否为真。 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2024-11-09 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-10 15:19:08 * @FilePath: \go-toolbox\pkg\mathx\unstable.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
Index ¶
- func AtLeast[T types.Numerical](x, lower T) T
- func AtMost[T types.Numerical](x, upper T) T
- func Between[T types.Numerical](x, lower, upper T) T
- func BubbleSort(arr []int)
- func CalcEntropy(m map[interface{}]int) float64
- func CountPathSegments(path string, prefixes ...string) int
- func Decimals[T types.Numerical](num T, digit int) string
- func EqualSlices[T comparable](a, b []T) bool
- func InsertionSort(arr []int)
- func LongestCommonPrefix(a, b string) int
- func MaxFunc[T types.Numerical](a, b T) T
- func MinFunc[T types.Numerical](a, b T) T
- func QuickSort(arr []int, low, high int)
- func SliceChunk[T any](slice []T, size int) [][]T
- func SliceContains[T types.Ordered](slice []T, element T) bool
- func SliceDiff[T ~[]E, E comparable](list1 T, list2 T) (ret1 T, ret2 T)
- func SliceDiffSetSorted[T types.Ordered](arr1, arr2 []T) []T
- func SliceEqual[T comparable](a, b []T) bool
- func SliceFisherYates[T comparable](slice []T, maxRetries int) error
- func SliceHasDuplicates[T comparable](slice []T) bool
- func SliceIntersect[T ~[]E, E comparable](list1 T, list2 T) T
- func SliceMinMax[T types.Numerical](list []T, f types.MinMaxFunc[T]) (T, error)
- func SliceRemoveDuplicates[T comparable](numbers []T) []T
- func SliceRemoveEmpty[T any](slice []T) []T
- func SliceRemoveZero(arr []int) []int
- func SliceUnion[T comparable](arr1, arr2 []T) []T
- func SliceUniq[T ~[]E, E comparable](list T) T
- func SliceWithout[T ~[]E, E comparable](list T, exclude ...E) T
- func ZeroValue[T any]() T
- type Proba
- type Unstable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AtLeast ¶
AtLeast 返回 x 和 lower 中的较大值。 参数: x - 要比较的第一个数值 lower - 要比较的第二个数值(下限) 返回值: 返回 x 和 lower 中的较大值。
func AtMost ¶
AtMost 返回 x 和 upper 中的较小值。 参数: x - 要比较的第一个数值 upper - 要比较的第二个数值(上限) 返回值: 返回 x 和 upper 中的较小值。
func Between ¶
Between 将 x 的值限制在 [lower, upper] 范围内。 如果 x 小于 lower,则返回 lower; 如果 x 大于 upper,则返回 upper; 否则,返回 x 本身。 参数: x - 要限制的数值 lower - 范围的下限 upper - 范围的上限 返回值: 返回 x 被限制在 [lower, upper] 范围内的值。
func CalcEntropy ¶
CalcEntropy 计算给定概率分布(map)的熵值 熵值表示信息的不确定性或随机性
func CountPathSegments ¶
CountPathSegments 计算路径中指定前缀的参数数量,默认为 ":" 和 "*"。
func EqualSlices ¶ added in v0.11.7
func EqualSlices[T comparable](a, b []T) bool
EqualSlices 比较两个切片是否相等,支持任意类型
func LongestCommonPrefix ¶
LongestCommonPrefix 返回两个字符串的最长公共前缀的长度。 参数: a - 第一个字符串 b - 第二个字符串 返回值: 返回两个字符串的最长公共前缀的长度。
func SliceChunk ¶ added in v0.11.11
SliceChunk 将一个切片分割成多个子切片。 size 参数指定每个子切片的大小。 返回一个包含子切片的切片。
func SliceContains ¶ added in v0.11.11
SliceContains 检查切片中是否包含某个元素。 返回布尔值,表示元素是否存在于切片中。
func SliceDiff ¶ added in v0.11.11
func SliceDiff[T ~[]E, E comparable](list1 T, list2 T) (ret1 T, ret2 T)
SliceDiff 返回两个集合之间的差异
func SliceDiffSetSorted ¶ added in v0.11.11
SliceDiffSetSorted 计算两个已排序数组的差集
func SliceEqual ¶ added in v0.11.11
func SliceEqual[T comparable](a, b []T) bool
SliceEqual 比较两个切片是否相等,支持任何类型
func SliceFisherYates ¶ added in v0.11.11
func SliceFisherYates[T comparable](slice []T, maxRetries int) error
SliceFisherYates 洗牌算法打乱数组
func SliceHasDuplicates ¶ added in v0.11.11
func SliceHasDuplicates[T comparable](slice []T) bool
SliceHasDuplicates 检查切片中是否存在重复对象。 返回布尔值,表示是否存在重复元素。
func SliceIntersect ¶ added in v0.11.11
func SliceIntersect[T ~[]E, E comparable](list1 T, list2 T) T
SliceIntersect 返回两个集合的交集
func SliceMinMax ¶ added in v0.11.11
func SliceMinMax[T types.Numerical](list []T, f types.MinMaxFunc[T]) (T, error)
SliceMinMax 计算列表中元素的最小值或最大值。 接收一个切片和一个 MinMaxFunc 类型的函数, 根据提供的函数决定是计算最小值还是最大值。 如果列表为空,则返回错误。
func SliceRemoveDuplicates ¶ added in v0.11.11
func SliceRemoveDuplicates[T comparable](numbers []T) []T
SliceRemoveDuplicates 移除切片中的重复值。 返回一个新切片,包含所有唯一元素。
func SliceRemoveEmpty ¶ added in v0.11.11
func SliceRemoveEmpty[T any](slice []T) []T
SliceRemoveEmpty 移除切片中的空对象。 返回一个新切片,包含所有非空元素。
func SliceRemoveZero ¶ added in v0.11.11
SliceRemoveZero 移除切片中的零值。 返回一个新切片,包含所有非零元素。
func SliceUnion ¶ added in v0.11.11
func SliceUnion[T comparable](arr1, arr2 []T) []T
SliceUnion 计算两个数组的并集。 返回一个新的数组,包含所有元素,不包含重复元素。
func SliceWithout ¶ added in v0.11.11
func SliceWithout[T ~[]E, E comparable](list T, exclude ...E) T
SliceWithout 返回不包括所有给定值的切片
Types ¶
type Proba ¶
type Proba struct {
// contains filtered or unexported fields
}
Proba结构体用于根据给定的概率判断事件是否为真。 它内部使用了一个线程不安全的随机数生成器,并通过互斥锁来保证并发安全。
func (*Proba) TrueOnProba ¶
TrueOnProba方法用于根据给定的概率判断事件是否为真。 它接收一个浮点数作为概率参数(范围应在0到1之间),并返回一个布尔值。 如果生成的随机数小于给定的概率,则返回true;否则返回false。 此方法通过加锁来保证在并发访问时的线程安全。
type Unstable ¶
type Unstable struct {
// contains filtered or unexported fields
}
Unstable 结构体用于基于给定的偏差值生成围绕均值附近的随机值。
func (Unstable) AroundDuration ¶
AroundDuration 根据给定的基础时长和偏差值返回一个随机的时长。