From 3c4eb23041ed7dea1b06c128a0538b74b35cfbcf Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Thu, 15 Jun 2023 09:59:16 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E5=A2=9E=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E5=8F=96=E5=A4=A7=E5=B0=8F=E8=BE=85=E5=8A=A9=E5=87=BD?= =?UTF-8?q?=E6=95=B0=20Min=E3=80=81Max=E3=80=81MinMax=E3=80=81MaxMin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/maths/math.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/utils/maths/math.go b/utils/maths/math.go index ac9ec39..6ba6df3 100644 --- a/utils/maths/math.go +++ b/utils/maths/math.go @@ -1,5 +1,9 @@ package maths +import ( + "github.com/kercylan98/minotaur/utils/generic" +) + // Pow 整数幂运算 func Pow(a, n int) int { if a == 0 { @@ -47,3 +51,35 @@ func PowInt64(a, n int64) int64 { } return result } + +// Min 返回两个数之中较小的值 +func Min[V generic.Number](a, b V) V { + if a < b { + return a + } + return b +} + +// Max 返回两个数之中较大的值 +func Max[V generic.Number](a, b V) V { + if a > b { + return a + } + return b +} + +// MinMax 将两个数按照较小的和较大的顺序进行返回 +func MinMax[V generic.Number](a, b V) (min, max V) { + if a < b { + return a, b + } + return b, a +} + +// MaxMin 将两个数按照较大的和较小的顺序进行返回 +func MaxMin[V generic.Number](a, b V) (max, min V) { + if a > b { + return a, b + } + return b, a +}