maths

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Examples

Constants

View Source
const (
	DefaultTolerance = 0.0001 // 默认误差范围
	Zero             = 0      // 零
)

Variables

This section is empty.

Functions

func Clamp

func Clamp[V generic.Number](value, min, max V) V

Clamp 将给定值限制在最小值和最大值之间

func Compare

func Compare[V generic.Ordered](a V, expression CompareExpression, b V) bool

Compare 根据特定表达式比较两个值

func CountDigits added in v0.0.21

func CountDigits[V generic.Number](num V) int

CountDigits 接收一个整数 num 作为输入,并返回该数字的位数

func GetDefaultTolerance

func GetDefaultTolerance() float64

GetDefaultTolerance 获取默认误差范围

func GetDigitValue added in v0.0.21

func GetDigitValue(num int64, digit int) int64

GetDigitValue 接收一个整数 num 和一个表示目标位数的整数 digit 作为输入,并返 回数字 num 在指定位数上的数值。我们使用 math.Abs() 函数获取 num 的绝对值,并通 过除以10的操作将 num 移动到目标位数上。然后,通过取余运算得到位数上的数值

func IsContinuity added in v0.0.3

func IsContinuity[S ~[]V, V generic.Integer](values S) bool

IsContinuity 检查一组值是否连续

Example
package main

import (
	"fmt"
	"github.com/kercylan98/minotaur/utils/maths"
)

func main() {
	fmt.Println(maths.IsContinuity([]int{1, 2, 3, 4, 5, 6, 7}))
	fmt.Println(maths.IsContinuity([]int{1, 2, 3, 5, 5, 6, 7}))
}
Output:

true
false

func IsContinuityWithSort added in v0.0.3

func IsContinuityWithSort[S ~[]V, V generic.Integer](values S) bool

IsContinuityWithSort 检查一组值排序后是否连续

func IsEven added in v0.0.23

func IsEven[V generic.Integer](n V) bool

IsEven 返回 n 是否为偶数

func IsOdd added in v0.0.23

func IsOdd[V generic.Integer](n V) bool

IsOdd 返回 n 是否为奇数

func JoinNumbers added in v0.0.22

func JoinNumbers[V generic.Number](num1 V, n ...V) V

JoinNumbers 将一组数字连接起来

func MakeLastDigitsZero added in v0.3.5

func MakeLastDigitsZero[T generic.Number](num T, digits int) T

MakeLastDigitsZero 返回一个新的数,其中 num 的最后 digits 位数被设为零。

  • 函数首先创建一个 10 的 digits 次方的遮罩,然后通过整除和乘以这个遮罩来使 num 的最后 digits 位归零。
  • 当 T 类型为浮点型时,将被向下取整后再进行转换

func Max

func Max[V generic.Number](a, b V) V

Max 返回两个数之中较大的值

func MaxMin

func MaxMin[V generic.Number](a, b V) (max, min V)

MaxMin 将两个数按照较大的和较小的顺序进行返回

func Merge

func Merge[V generic.SignedNumber](refer, a, b V) V

Merge 通过一个参考值合并两个数字

func MergeToInt64 added in v0.0.23

func MergeToInt64[V generic.SignedNumber](v1 V, v2 V) int64

MergeToInt64 将两个数字合并为一个 int64 数字

func Min

func Min[V generic.Number](a, b V) V

Min 返回两个数之中较小的值

func MinMax

func MinMax[V generic.Number](a, b V) (min, max V)

MinMax 将两个数按照较小的和较大的顺序进行返回

func Pow

func Pow(a, n int) int

Pow 整数幂运算

func PowInt64

func PowInt64(a, n int64) int64

PowInt64 整数幂运算

func ToContinuous added in v0.0.3

func ToContinuous[S ~[]V, V generic.Integer](nums S) map[V]V

ToContinuous 将一组非连续的数字转换为从1开始的连续数字

  • 返回值是一个 map,key 是从 1 开始的连续数字,value 是原始数字
Example
package main

import (
	"fmt"
	"github.com/kercylan98/minotaur/utils/maths"
)

func main() {
	var nums = []int{1, 2, 3, 5, 6, 7, 9, 10, 11}
	var continuous = maths.ToContinuous(nums)

	fmt.Println(nums)
	fmt.Println(continuous)

}
Output:

[1 2 3 5 6 7 9 10 11]
map[1:1 2:2 3:3 4:5 5:6 6:7 7:9 8:10 9:11]

func Tolerance

func Tolerance[V generic.Number](value1, value2, tolerance V) bool

Tolerance 检查两个值是否在一个误差范围内

func UnMerge

func UnMerge[V generic.SignedNumber](refer, num V) (a, b V)

UnMerge 通过一个参考值取消合并的两个数字

func UnMergeInt64 added in v0.0.22

func UnMergeInt64[V generic.SignedNumber](n int64) (V, V)

UnMergeInt64 将一个 int64 数字拆分为两个数字

Types

type CompareExpression

type CompareExpression int

CompareExpression 比较表达式

const (
	CompareGreaterThan        CompareExpression = 1 // 大于
	CompareGreaterThanOrEqual CompareExpression = 2 // 大于等于
	CompareLessThan           CompareExpression = 3 // 小于
	CompareLessThanOrEqual    CompareExpression = 4 // 小于等于
	CompareEqual              CompareExpression = 5 // 等于
)

Jump to

Keyboard shortcuts

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