mathx

package
v0.11.14 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2024 License: Apache-2.0 Imports: 11 Imported by: 1

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func AtLeast

func AtLeast[T types.Numerical](x, lower T) T

AtLeast 返回 x 和 lower 中的较大值。 参数: x - 要比较的第一个数值 lower - 要比较的第二个数值(下限) 返回值: 返回 x 和 lower 中的较大值。

func AtMost

func AtMost[T types.Numerical](x, upper T) T

AtMost 返回 x 和 upper 中的较小值。 参数: x - 要比较的第一个数值 upper - 要比较的第二个数值(上限) 返回值: 返回 x 和 upper 中的较小值。

func Between

func Between[T types.Numerical](x, lower, upper T) T

Between 将 x 的值限制在 [lower, upper] 范围内。 如果 x 小于 lower,则返回 lower; 如果 x 大于 upper,则返回 upper; 否则,返回 x 本身。 参数: x - 要限制的数值 lower - 范围的下限 upper - 范围的上限 返回值: 返回 x 被限制在 [lower, upper] 范围内的值。

func BubbleSort added in v0.11.13

func BubbleSort(arr []int)

BubbleSort 实现冒泡排序算法

func CalcEntropy

func CalcEntropy(m map[interface{}]int) float64

CalcEntropy 计算给定概率分布(map)的熵值 熵值表示信息的不确定性或随机性

func CountPathSegments

func CountPathSegments(path string, prefixes ...string) int

CountPathSegments 计算路径中指定前缀的参数数量,默认为 ":" 和 "*"。

func Decimals added in v0.11.9

func Decimals[T types.Numerical](num T, digit int) string

Decimals 转换为包含小数点后指定位数的字符串

func EqualSlices added in v0.11.7

func EqualSlices[T comparable](a, b []T) bool

EqualSlices 比较两个切片是否相等,支持任意类型

func InsertionSort added in v0.11.13

func InsertionSort(arr []int)

InsertionSort 对小规模数组使用插入排序

func LongestCommonPrefix

func LongestCommonPrefix(a, b string) int

LongestCommonPrefix 返回两个字符串的最长公共前缀的长度。 参数: a - 第一个字符串 b - 第二个字符串 返回值: 返回两个字符串的最长公共前缀的长度。

func MaxFunc added in v0.11.12

func MaxFunc[T types.Numerical](a, b T) T

MaxFunc 类型的实现,用于计算最大值

func MinFunc added in v0.11.12

func MinFunc[T types.Numerical](a, b T) T

MinFunc 类型的实现,用于计算最小值

func QuickSort added in v0.11.13

func QuickSort(arr []int, low, high int)

QuickSort 实现快速排序算法

func SliceChunk added in v0.11.11

func SliceChunk[T any](slice []T, size int) [][]T

SliceChunk 将一个切片分割成多个子切片。 size 参数指定每个子切片的大小。 返回一个包含子切片的切片。

func SliceContains added in v0.11.11

func SliceContains[T types.Ordered](slice []T, element T) bool

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

func SliceDiffSetSorted[T types.Ordered](arr1, arr2 []T) []T

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

func SliceRemoveZero(arr []int) []int

SliceRemoveZero 移除切片中的零值。 返回一个新切片,包含所有非零元素。

func SliceUnion added in v0.11.11

func SliceUnion[T comparable](arr1, arr2 []T) []T

SliceUnion 计算两个数组的并集。 返回一个新的数组,包含所有元素,不包含重复元素。

func SliceUniq added in v0.11.11

func SliceUniq[T ~[]E, E comparable](list T) T

SliceUniq 集合去重

func SliceWithout added in v0.11.11

func SliceWithout[T ~[]E, E comparable](list T, exclude ...E) T

SliceWithout 返回不包括所有给定值的切片

func ZeroValue added in v0.11.7

func ZeroValue[T any]() T

ZeroValue 返回类型 T 的零值

Types

type Proba

type Proba struct {
	// contains filtered or unexported fields
}

Proba结构体用于根据给定的概率判断事件是否为真。 它内部使用了一个线程不安全的随机数生成器,并通过互斥锁来保证并发安全。

func NewProba

func NewProba() *Proba

NewProba函数用于创建一个新的Proba实例。 它返回一个初始化了随机数生成器和互斥锁的Proba结构体指针。

func (*Proba) TrueOnProba

func (p *Proba) TrueOnProba(proba float64) bool

TrueOnProba方法用于根据给定的概率判断事件是否为真。 它接收一个浮点数作为概率参数(范围应在0到1之间),并返回一个布尔值。 如果生成的随机数小于给定的概率,则返回true;否则返回false。 此方法通过加锁来保证在并发访问时的线程安全。

type Unstable

type Unstable struct {
	// contains filtered or unexported fields
}

Unstable 结构体用于基于给定的偏差值生成围绕均值附近的随机值。

func NewUnstable

func NewUnstable(deviation float64) Unstable

NewUnstable 创建一个新的 Unstable 实例。

func (Unstable) AroundDuration

func (u Unstable) AroundDuration(base time.Duration) time.Duration

AroundDuration 根据给定的基础时长和偏差值返回一个随机的时长。

func (Unstable) AroundInt

func (u Unstable) AroundInt(base int64) int64

AroundInt 根据给定的基础整数值和偏差值返回一个随机的 int64 值。

Jump to

Keyboard shortcuts

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