mirror of
https://gitee.com/NorthCityChen/stl-go.git
synced 2025-05-25 20:11:08 +00:00
ADD: sqrt & Exp2
This commit is contained in:
parent
89a281434c
commit
9b0c409a97
30
app.go
30
app.go
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: NorthCity1984
|
* @Author: NorthCity1984
|
||||||
* @LastEditTime: 2022-04-02 13:19:42
|
* @LastEditTime: 2022-04-03 09:31:39
|
||||||
* @Description:
|
* @Description:
|
||||||
* @Website: https://grimoire.cn
|
* @Website: https://grimoire.cn
|
||||||
* Copyright (c) NorthCity1984 All rights reserved.
|
* Copyright (c) NorthCity1984 All rights reserved.
|
||||||
@ -9,29 +9,13 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
"gitee.com/NorthCityChen/stl-go/dequeue"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
q := dequeue.Init[int]()
|
// ans := math.Exp2(0)
|
||||||
q.LPush(12)
|
ans := math.Sqrt(-8)
|
||||||
q.LPush(23)
|
// ans2 := math1.Sqrt(-8)
|
||||||
q.LPush(34)
|
fmt.Println(ans)
|
||||||
q.Clear()
|
// fmt.Println(ans2)
|
||||||
q.LPush(34)
|
|
||||||
q.RPush(44)
|
|
||||||
fmt.Println(q.LPop())
|
|
||||||
fmt.Println(q.LPop())
|
|
||||||
fmt.Println(q.LPop())
|
|
||||||
fmt.Println(q.LPop())
|
|
||||||
// q := queue.Init[int]()
|
|
||||||
// q.Push(12)
|
|
||||||
// q.Push(23)
|
|
||||||
// q.Push(44)
|
|
||||||
// // q.IsEmpty()
|
|
||||||
// fmt.Println(q.Pop())
|
|
||||||
// fmt.Println(q.Pop())
|
|
||||||
// fmt.Println(q.Pop())
|
|
||||||
// fmt.Println(q.Pop())
|
|
||||||
}
|
}
|
||||||
|
36
math/math.go
36
math/math.go
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: NorthCity1984
|
* @Author: NorthCity1984
|
||||||
* @LastEditTime: 2022-04-01 21:04:53
|
* @LastEditTime: 2022-04-03 09:32:48
|
||||||
* @Description:
|
* @Description:
|
||||||
* @Website: https://grimoire.cn
|
* @Website: https://grimoire.cn
|
||||||
* Copyright (c) NorthCity1984 All rights reserved.
|
* Copyright (c) NorthCity1984 All rights reserved.
|
||||||
@ -13,10 +13,7 @@ type Number interface {
|
|||||||
int | int32 | int64 | float32 | float64
|
int | int32 | int64 | float32 | float64
|
||||||
}
|
}
|
||||||
|
|
||||||
func Inf[T Number]() T {
|
// 返回n个数中的最小值
|
||||||
return T(math.Inf(1))
|
|
||||||
}
|
|
||||||
|
|
||||||
func Max[T Number](arg T, args ...T) T {
|
func Max[T Number](arg T, args ...T) T {
|
||||||
var maxNum T = arg
|
var maxNum T = arg
|
||||||
|
|
||||||
@ -28,6 +25,7 @@ func Max[T Number](arg T, args ...T) T {
|
|||||||
return maxNum
|
return maxNum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 返回n个数中的最大值
|
||||||
func Min[T Number](arg T, args ...T) T {
|
func Min[T Number](arg T, args ...T) T {
|
||||||
var minNum T = arg
|
var minNum T = arg
|
||||||
for _, val := range args {
|
for _, val := range args {
|
||||||
@ -38,6 +36,7 @@ func Min[T Number](arg T, args ...T) T {
|
|||||||
return minNum
|
return minNum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 返回n个数的和
|
||||||
func Sum[T Number](args ...T) (sum T) {
|
func Sum[T Number](args ...T) (sum T) {
|
||||||
for _, val := range args {
|
for _, val := range args {
|
||||||
sum += val
|
sum += val
|
||||||
@ -45,6 +44,7 @@ func Sum[T Number](args ...T) (sum T) {
|
|||||||
return sum
|
return sum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 返回num的绝对值
|
||||||
func Abs[T Number](num T) T {
|
func Abs[T Number](num T) T {
|
||||||
if num < 0 {
|
if num < 0 {
|
||||||
num *= -1
|
num *= -1
|
||||||
@ -52,4 +52,28 @@ func Abs[T Number](num T) T {
|
|||||||
return num
|
return num
|
||||||
}
|
}
|
||||||
|
|
||||||
// sort
|
// 返回 2**n
|
||||||
|
func Exp2(num int) int64 {
|
||||||
|
var ans int64 = 1
|
||||||
|
for i := 0; i < num; i++ {
|
||||||
|
ans <<= 1
|
||||||
|
}
|
||||||
|
return ans
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回x的平方根,精度比原生略低
|
||||||
|
func Sqrt(x float64) float64 {
|
||||||
|
if x < 0 {
|
||||||
|
return math.NaN()
|
||||||
|
}
|
||||||
|
|
||||||
|
if x == 0 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
last, res := 0.0, 1.0
|
||||||
|
for last != res {
|
||||||
|
last = res
|
||||||
|
res = (res + x/res) / 2
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user