文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Go语言标准库math和rand的常用函数有哪些

2023-07-04 19:45

关注

本篇内容介绍了“Go语言标准库math和rand的常用函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

math 标准库

math 标准库提供了一些 常量如 int64 类型的最大值、float64 类型的最大值等,和常用的数学计算函数。

常用函数

函数说明
Abs(x float64) float64传入 x 参数,返回 x 的绝对值
Max(x, y float64) float64传入 x、y 参数,返回 x 与 y 中的最大值
Min(x, y float64) float64传入 x、y 参数,返回 x 和 y 中的最小值
Ceil(x float64) float64传入 x 参数,返回一个大于等于 x 的最小整数值,也就是向上取整
Ceil(x float64) float64传入 x 参数,返回一个小于等于 x 的最小整数值,也就是向下取整
Trunc(x float64) float64传入 x 参数,返回浮点数 x 的整数部分,使用 Floor 函数也能实现
Dim(x, y float64) float64传入 x、y 参数,返回 x-y 与 0 中最大的值
Mod(x, y float64) float64对 x / y 进行取余运算 x % y
Pow(x, y float64) float64计算 x 的 y 次幂
Sqrt(x float64) float64对 x 开平方
Cbrt(x float64) float64对 x 开立方
Modf(f float64) (int float64, frac float64)分别取出 f 的整数部分和小数部分

如果想了解更多函数介绍和使用,可以到 pkg.go.dev/math 进行查看。

Abs 函数

Abs(x float64) float64:返回 x 的绝对值。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Abs(-3.14)) // 3.14}

Max 函数

Max(x, y float64) float64:返回 xy 中的最大值。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Max(1.5, 2.5)) // 2.5}

Min 函数

Min(x, y float64) float64:返回 xy 中的最小值。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Min(1.5, 2.5)) // 1.5}

Ceil

Ceil(x float64) float64:返回一个大于等于 x 的最小整数值,也就是向上取整。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Ceil(1.4)) // 2    fmt.Println(math.Ceil(2))   // 2}

Floor 函数

Ceil(x float64) float64:返回一个小于等于 x 的最小整数值,也就是向下取整。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Floor(1.4)) // 1    fmt.Println(math.Floor(1))   // 1}

Trunc 函数

Trunc(x float64) float64:返回浮点数 x 的整数部分,使用 Floor 函数也能实现。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Trunc(1.4)) // 1}

Dim 函数

Dim(x, y float64) float64:返回 x-y0 中最大的值。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Dim(2.0, 1.0)) // 1    fmt.Println(math.Dim(1.0, 2.0)) // 0}

Mod 函数

Mod(x, y float64) float64:对 x / y 进行取余运算 x % y。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Mod(5.0, 3.0)) // 3    fmt.Println(math.Mod(3.0, 3.0)) // 0}

Pow 函数

Pow(x, y float64) float64:计算 xy 次幂。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Pow(2, 1)) // 2    fmt.Println(math.Pow(2, 5)) // 32}

Sqrt 函数

Sqrt(x float64) float64:对 x 开平方。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Sqrt(64)) // 8    fmt.Println(math.Sqrt(16)) // 4}

Cbrt 函数

Cbrt(x float64) float64:对 x 开立方。 示例:

import (    "fmt"    "math")func main() {    fmt.Println(math.Cbrt(64)) // 4    fmt.Println(math.Cbrt(8))  // 2}

Modf 函数

Modf(f float64) (int float64, frac float64):分别取出 f 的整数部分和小数部分。

import (    "fmt"    "math")func main() {    integer, decimal := math.Modf(3.1415)    fmt.Printf("整数部分:%.f 小数部分:%.4f", integer, decimal) // 整数部分:3 小数部分:0.1415}

rand

rand 标准库提供了多个获取不同类型随机数的函数。

常用函数

函数说明
Int() int返回一个 int 类型的非负的伪随机数
Intn(n int) int返回一个 0 到 n 中(不包括 n)的 int 类型的非负伪随机数
Int31() int32返回一个 int32 类型的非负的伪随机数
Uint32() uint32返回一个 uint32 类型的非负的伪随机数
Int31n(n int32) int32返回一个 0 到 n 中(不包括 n)的 int32 类型的非负伪随机数
Int63() int64返回一个 int64 类型的非负的伪随机数
Uint64() uint64返回一个 uint64 类型的非负的伪随机数
Int63n(n int64) int64返回一个 0 到 n 中(不包括 n)的 int64 类型的非负伪随机数
Float32() float32返回一个 0.0 到 1.0 中(不包括 1.0)的 float32 类型的非负伪随机数
Float64() float64返回一个 0.0 到 1.0 中(不包括 1.0)的 float64 类型的非负伪随机数
Seed(seed int64)设置随机种子,使得每次获取随机数的值都不一样

如果想了解更多函数介绍和使用,可以到 pkg.go.dev/math/rand 进行查看。

代码示例

import (    "fmt"    "math/rand")func main() {    fmt.Println(rand.Int())      // 5577006791947779410    fmt.Println(rand.Intn(10))   // 7    fmt.Println(rand.Int31())    // 1427131847    fmt.Println(rand.Uint32())   // 1879968118    fmt.Println(rand.Int31n(10)) // 1    fmt.Println(rand.Int63())    // 6334824724549167320    fmt.Println(rand.Uint64())   // 9828766684487745566    fmt.Println(rand.Int63n(10)) // 8    fmt.Println(rand.Float32())  // 0.09696952    fmt.Println(rand.Float64())  // 0.30091186058528707}

多次运行上述代码,发现获取到的随机数都是一样的,这是因为我们没有设置随机种子。可以通过 Seed 函数进行设置:

import (    "fmt"    "math/rand"    "time")func main() {    rand.Seed(time.Now().Unix())    fmt.Println(rand.Intn(10))}

使用 Seed 函数设置随机种子,将当前时间的秒数作为参数。后续多次获取随机数的值将不会一直一样。

“Go语言标准库math和rand的常用函数有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯