您现在的位置是:首页 >学无止境 >golang的math包函数简介网站首页学无止境

golang的math包函数简介

Yietion 2024-06-17 10:43:13
简介golang的math包函数简介

简介

math 包实现的就是数学函数计算。

math包中的常用函数

三角函数

正弦函数,反正弦函数,双曲正弦,反双曲正弦
func Sin(x float64) float64
func Asin(x float64) float64
func Sinh(x float64) float64
func Asinh(x float64) float64
一次性返回 sin,cos
func Sincos(x float64) (sin, cos float64)
余弦函数,反余弦函数,双曲余弦,反双曲余弦
func Cos(x float64) float64
func Acos(x float64) float64
func Cosh(x float64) float64
func Acosh(x float64) float64
正切函数,反正切函数,双曲正切,反双曲正切
func Tan(x float64) float64
func Atan(x float64) float64func Atan2(y, x float64) float64
func Tanh(x float64) float64
func Atanh(x float64) float64

幂次函数

func Cbrt(x float64) float64 // 立方根函数
func Pow(x, y float64) float64  // x 的幂函数
func Pow10(e int) float64 // 10 根的幂函数
func Sqrt(x float64) float64 // 平方根
func Log(x float64) float64 // 对数函数
func Log10(x float64) float64 // 10 为底的对数函数
func Log2(x float64) float64  // 2 为底的对数函数
func Log1p(x float64) float64 // log(1 + x)
func Logb(x float64) float64 // 相当于 log2(x) 的绝对值
func Ilogb(x float64) int // 相当于 log2(x) 的绝对值的整数部分
func Exp(x float64) float64 // 指数函数
func Exp2(x float64) float64 // 2 为底的指数函数
func Expm1(x float64) float64 // Exp(x) - 1

特殊函数

func Inf(sign int) float64  // 正无穷
func IsInf(f float64, sign int) bool // 是否正无穷
func NaN() float64 // 无穷值
func IsNaN(f float64) (is bool) // 是否是无穷值
func Hypot(p, q float64) float64 // 计算直角三角形的斜边长

类型转化函数

func Float32bits(f float32) uint32  // float32 和 unit32 的转换
func Float32frombits(b uint32) float32 // uint32 和 float32 的转换
func Float64bits(f float64) uint64 // float64 和 uint64 的转换
func Float64frombits(b uint64) float64 // uint64 和 float64 的转换

Rand包

func Int() int // 返回一个非负的伪随机int值。
func Int31() int32 // 返回一个int32类型的非负的31位伪随机数。
func Intn(n int) int // 返回一个取值范围在[0,n)的伪随机int值,如果n<=0会panic。
func Int63() int64 // 返回一个int64类型的非负的63位伪随机数。
func Uint32() uint32 //返回一个uint32类型的非负的32位伪随机数。
func Uint64() uint64 //返回一个uint64类型的非负的32位伪随机数。
func Int31n(n int32) int32 //返回一个取值范围在[0,n)的伪随机int32值,如果n<=0会panic。
func Int63n(n int64) int64 //返回一个取值范围在[0, n)的伪随机int64值,如果n<=0会panic。
func Float32() float32 //返回一个取值范围在[0.0, 1.0)的伪随机float32值。
func Float64() float64 //返回一个取值范围在[0.0, 1.0)的伪随机float64值。
func Perm(n int) []int //返回一个有n个元素的,[0,n)范围内整数的伪随机的切片。
func Read(p []byte) (n int, err error) // 生成len(p)个伪随机数,伪随机数的范围为0-255;并将伪随机数存入p,返回len(p)和可能发生的错误。

使用:

func main() {
  // 直接调用rand的方法生成伪随机int值
  rand.Seed(time.Now().Unix()) // 设置种子,我们以当前时间的秒;当然也可以用毫秒,微秒等
  fmt.Println(rand.Int())
  fmt.Println(rand.Int31())
  fmt.Println(rand.Intn(5))
}
func NewSource(seed int64) Source //使用给定的种子创建一个伪随机资源。
func New(src Source) *Rand //返回一个使用src随机源生成一个Rand。

使用:

package main

import (
  "fmt"
  "math/rand"
  "time"
)

func main() {
  source := rand.NewSource(time.Now().UnixNano()) // 使用当前的纳秒生成一个随机源,也就是随机种子
  ran := rand.New(source) // 生成一个rand
  fmt.Println(ran.Int()) // 获取随机数
}
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。